Compare commits

...

1,637 commits

Author SHA1 Message Date
Lea Anthony
6fcf2d6210 docs: fix issues from PR review comments
- menus.mdx: add Update() call after adding items to context menu snippet
- application.mdx: fix Emit() signature — remove fabricated bool return
- events-reference.mdx: fix files-dropped JS example to account for
  variadic wrapping (event.data[0] is the files array)
- bridge.mdx: fix progress event example — use variadic args directly
  and destructure event.data array in JS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:41:54 +11:00
Lea Anthony
e2e0f5c95e docs: fix lifecycle docs - use events not services for lifecycle hooks
ServiceStartup is for service resource initialization (DB, config),
NOT for application lifecycle hooks. Application lifecycle events
(events.Common.ApplicationStarted, ThemeChanged) are the correct
mechanism for reacting to lifecycle stages.

- architecture.mdx: replace misleading "Lifecycle hooks" section
- lifecycle.mdx: add Application Lifecycle Events section (new §3)
- lifecycle.mdx: rename "Service Startup" to "Service Initialisation"
- lifecycle.mdx: categorize reference table (events/services/options)
- lifecycle.mdx: update d2 diagram with ApplicationStarted stage
- lifecycle.mdx: update best practices to distinguish init vs lifecycle

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:27:10 +11:00
Lea Anthony
83721ad5b1 docs: apply PR review principles - JS event objects, directives, lifecycle
Address feedback from PR #4975 review by fbbdev and Copilot:

JS event callbacks (Principle 3 - 14 fixes across 10 files):
- All JS event callbacks now correctly receive event object, access
  payload via event.data instead of receiving data directly
- Fixed in: reference/window, concepts/bridge, concepts/architecture,
  migration/v2-to-v3, guides/gin-routing, guides/gin-services,
  features/dialogs/custom, features/bindings/best-practices

Wails directives (Principle 2 - 2 files):
- Fixed //wails:internal semantics: IS exported to frontend but kept
  module-private (not re-exported from index), NOT "prevents export"
- Fixed //wails:ignore description: completely excluded from JS bindings
- Added new "Internal + Inject Pattern" section with real SQLite service
  example showing how //wails:internal + //wails:inject work together

ContextMenu.Update() (Principle 5):
- Added missing Update() call in guides/menus.mdx image gallery example

Lifecycle patterns verified correct - ServiceStartup usage is for
business logic init, not lifecycle hooks. EventManager.Emit confirmed
to return bool per source (Principle 4 in audit doc was incorrect).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 07:49:46 +11:00
Lea Anthony
35750b71cc docs: comprehensive audit and fix of hallucinated v3 documentation
Three-pass audit of all v3 documentation against source code on v3-alpha,
fixing hundreds of hallucinated API patterns, fabricated CLI flags, wrong
method signatures, and incorrect struct fields across 59 files.

Pass 1: Pattern-matched sweep for known wrong API names
Pass 2: Source-code-first specialist agents (6 agents by area)
Pass 3: Deep field-by-field verification (7 specialist agents)

Key fixes:
- Removed fabricated OnStartup/OnBeforeClose hooks, replaced with
  ServiceStartup interface, ShouldQuit, RegisterHook patterns
- Removed fabricated window convenience methods (OnClose, OnFocus, etc.),
  replaced with OnWindowEvent(events.Common.*, ...) pattern
- Removed fabricated CLI flags (-platform, -o, -ldflags, -icon, etc.),
  documented actual Taskfile-based build system with GOOS/GOARCH
- Fixed package-level dialog functions to Manager API
- Fixed JS runtime imports (OnEvent/Emit -> Events.On/Events.Emit)
- Fixed platform option struct names (MacOptions->MacWindow, etc.)
- Fixed Screen struct fields, WebviewWindowOptions fields
- Added missing documentation for 20+ window methods, 30+ platform
  option fields, complete Application Options table, missing CLI commands
- Fixed event callback signatures, event constant names
- Fixed ServiceShutdown signature, OnClick callback signatures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 21:51:33 +11:00
Lea Anthony
e39ed4ffba docs: remove temporary report and audit files
Remove 28 temporary status/progress/audit files from the branch:
- All AUDIT_* files from documentation audit session
- All PHASE*_* progress files
- All *_SUMMARY.md and *_STATUS.md files
- Other temporary report files (SCRIPT.md, DOCS_UPDATE.md, etc.)

These were temporary files used during documentation work sessions
and should not be part of the branch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 18:55:49 +11:00
Lea Anthony
e571840f1d Bring docs up to date 2025-11-23 18:47:43 +11:00
Lea Anthony
55bba6b40d docs: Add contribution type tabs with tailored guides for Bug Fix, Enhancements, and Documentation
- Created three tabs in Getting Started guide for different contribution types
- Bug Fix tab: 9 steps focused on reproducing, fixing, and testing bugs
- Enhancements tab: 10 steps covering feature discussion, implementation, and documentation
- Documentation tab: 9 steps for improving docs with live preview workflow
- Each tab includes type-specific best practices and examples
- Maintained Steps component for better UX in each tab

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 11:57:30 +11:00
Lea Anthony
2b6fd3856f docs: Improve Getting Started guide with process overview and steps component
- Updated Go requirement to 1.25+ (was 1.23+)
- Updated Node.js requirement to 20+ (was 18+)
- Changed fork link to direct fork URL
- Added "Contribution Process Overview" section with workflow bullet points
- Restructured content using Steps component for better UX
- Applied same version updates to Development Setup guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:41:46 +11:00
Lea Anthony
2040ab9551 docs: Streamline Contributing section and add comprehensive guides
- Reduced Contributing sidebar to three essential pages
- Created comprehensive Getting Started guide for new contributors
- Added detailed Development Setup guide with platform-specific instructions
- Created Coding Standards document covering Go/TypeScript conventions
- Removed v3 badge from "What's New" in sidebar
- Removed crown badge from "Credits" in sidebar
- All guides include practical examples and troubleshooting tips

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 22:37:21 +11:00
Lea Anthony
3f1e16dcfb docs: Comprehensive API Reference documentation with event tables and examples
- Restructured API Reference to use flat file structure instead of subdirectories
- Added complete API documentation for all major Wails v3 APIs
- Created comprehensive event tables documenting all built-in system events
- Fixed incorrect window lifecycle methods (OnClose/OnFocus/OnBlur don't exist)
- Replaced with correct OnWindowEvent() and RegisterHook() implementations
- Added detailed explanations of Common Events vs Platform-Native Events
- Expanded Frontend Runtime API with complete method signatures and examples
- Added comprehensive Dialogs, Menu, and Events API documentation
- Included practical code examples for Go and JavaScript throughout
- Documented event patterns with use case descriptions
- Removed placeholder content and "Best Practices" sections
- Made Go API Conventions collapsible with beginner-friendly intro text

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 22:28:26 +11:00
Lea Anthony
b2b1abd3ce docs: Update landing page and fix tutorial links
- Change BETA to ALPHA across documentation
- Add new showcase images (mchat, edex-ui) to landing page sliders
- Remove bulletin board and emailit images from sliders
- Increase slider spacing from 350px to 550px to reduce overlap
- Fix tutorial links to use numbered filenames (02-todo-vanilla, 03-notes-vanilla)
- Update 7 broken tutorial links across 5 files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 17:19:29 +11:00
Lea Anthony
232c39abaa docs: Migrate /learn content and reorganize documentation structure
Completes the documentation reorganization by migrating all /learn content
to proper locations and removing the legacy /learn directory.

Changes:
- Migrated 10 unique files from /learn to appropriate sections:
  - features/notifications, keyboard, environment, browser, platform
  - concepts/manager-api
  - contributing/architecture/bindings
  - reference/runtime
  - guides/build/customization
- Removed /learn directory and 22 legacy files
- Updated sidebar navigation:
  - Removed "Learn" section
  - Added Manager API to Core Concepts
  - Reorganized Features with new subdirectories
  - Added Build Customization to Guides
  - Added Binding System to Contributing/Architecture
- Fixed missing Card/CardGrid imports in 12 feature files
- Cleaned up stale d2 SVG files

All /features content verified to be more comprehensive than /learn versions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 16:37:37 +11:00
Lea Anthony
548c98a37f docs: Add Learn section to sidebar navigation
- Add "Learn" section between Tutorials and Core Concepts
- Autogenerate sidebar items from /learn directory
- Includes 22 important documentation files: bindings, events, windows, menus, dialogs, etc.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:00:20 +11:00
Lea Anthony
0002324776 docs: Add GameStacker showcase image to landing page
- Copy gamestacker.webp from merged PR #4724 to showcase-images
- Add GameStacker to Row 1 and Row 3 of scrolling background
- Replaces wombat and wally positions for better variety

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:58:43 +11:00
Lea Anthony
951194bab5 docs: Expand landing page scrolling background with all showcase images
- Update scrolling background to use 21 different showcase images
- Row 1: Added scriptbar, minesweeper-xp, wailsterm, modalfilemanager, ytd, filehound
- Row 2: Added tiny-rdm2, mollywallet, emailit, cfntracker, minecraft-mod-updater
- Row 3: Added encrypteasy, bboard, varly2, hiposter for more variety

Provides much more diverse visual showcase of Wails applications

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:46:32 +11:00
Lea Anthony
1ca58e8d9f docs: Move "Why Wails?" to top-level navigation
- Extract "Why Wails?" from Quick Start section to standalone top-level item
- Position above Quick Start for better visibility and onboarding flow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:37:58 +11:00
Lea Anthony
c854ec1c46 docs: Enhance migration guide and architecture documentation
- Add detailed explanations to v2-to-v3 migration guide breaking changes sections
- Explain what changed, why it changed, and benefits of the new approach
- Add explanatory text to "How Wails Works" architecture section
- Center architecture diagram with improved layout
- Remove "For Contributors" badge from sidebar
- Add notes tutorial screenshot to tutorials overview

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 06:38:20 +11:00
Lea Anthony
780966c8f4 docs: Rewrite TODO and Notes tutorials with working code and fix documentation issues
- Complete rewrite of TODO tutorial with detailed explanations and verified working code
- Complete rewrite of Notes tutorial demonstrating file dialogs and desktop patterns
- Add screenshots for both tutorials
- Update tutorial overview with improved descriptions
- Fix HTML entity encoding for < character in lifecycle and bridge docs
- Update API status from Beta to Alpha in reference documentation
- Change Beta APIs to Unstable APIs for clarity
- Remove "From Tauri" migration link from navigation
- Update wails.app references to wails.io
- Fix various typos and improve code examples throughout

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 20:30:40 +11:00
Lea Anthony
ed879b1be2 docs: simplify Gin routing guide
Reduced gin-routing.mdx from 584 to 263 lines by:
- Condensing static content serving section (38→18 lines)
- Replacing verbose Event Communication section with concise example (146→24 lines)
- Removing redundant "Interacting with Wails" section
- Simplifying Gin mode configuration (31→6 lines)
- Removing complete example (117 lines) - users can reference examples repo
- Replacing all instances of "leverage" with "use"

The guide now focuses on essential integration steps without
overwhelming detail, while maintaining all key concepts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 11:51:57 +11:00
Lea Anthony
2db420f4bd Remove card component overuse and fix AI-style language
- Replace CardGrid/Card components with simple markdown lists across 14 files
  - All guide files (building, architecture, security, performance, testing, installers, e2e-testing, auto-updates, cross-platform)
  - reference/overview.mdx
  - features/bindings/services.mdx, features/bindings/best-practices.mdx
  - features/windows/multiple.mdx
- Fix AI-generated language patterns:
  - "exciting journey" → direct technical description in getting-started/your-first-app.mdx
  - "dive deeper" → "Next:" in index.mdx
- Keep cards only on landing pages (index.mdx) where appropriate for visual appeal
- Consistent format: - [Title](link) - Description

Result: Cleaner, more maintainable documentation with reduced cognitive load

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 11:47:39 +11:00
Lea Anthony
0c88fb217c Improve documentation clarity and reduce cognitive load
- Update Go version requirement from 1.23+ to 1.25+ across all docs
- Update installation.mdx with links to official installers and actual wails3 doctor output
- Revert first-app.mdx to simple greet app tutorial (10 mins)
- Move TODO app to dedicated tutorial at tutorials/todo-vanilla.mdx (20 mins)
- Simplify next-steps.mdx: remove 50+ links, focus on essential paths
- Simplify tutorials/overview.mdx: remove emojis, cards, verbose sections
- Add Windows 11 Dev Drive performance tips to installation guides
- Fix auto-rebuild documentation (Go code auto-rebuilds, no manual restart needed)
- Remove "What You've Learned" section emojis
- Convert cards to bullet points throughout for better readability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 08:42:09 +11:00
Lea Anthony
0a2edd57aa docs: Complete documentation redesign with enhanced landing page 2025-10-04 22:15:35 +10:00
GitHub Actions
f70b9bf229 [skip ci] Publish @wailsio/runtime v3.0.0-alpha.71 2025-09-27 22:01:45 +00:00
Lea Anthony
3d1dc86079 Fix commit of npm package changes 2025-09-28 08:00:42 +10:00
Lea Anthony
cb76ef8c60 Bump npm version and fix pipeline 2025-09-28 07:50:55 +10:00
Lea Anthony
4a9d693e93 Regenerate runtime package 2025-09-28 07:37:57 +10:00
github-actions[bot]
cbf70499c3 chore(v3): bump to v3.0.0-alpha.31 and update changelog [skip ci] 2025-09-27 02:30:33 +00:00
Lea Anthony
751e4afe3f
[V3] Fix Window Affinity weirdness (#4600)
* Fix window affinity weirdness

* Update changelog
2025-09-27 12:25:00 +10:00
github-actions[bot]
966e3d5fbc chore(v3): bump to v3.0.0-alpha.30 and update changelog [skip ci] 2025-09-26 02:33:55 +00:00
samstanier
bb53fcbfac
[V3 alpha] Fix ultrawide monitor support on Wayland (fixes #4429) (#4561)
* Fixed Wayland related window maximum size issues on ultrawide monitors by adding a monitor-window search fallback.

* Fixed Wayland related window maximum size issues on ultrawide monitors by adding a monitor-window search fallback.

* Added note to UNRELEASED_CHANGELOG.md regarding Wayland ultrawide monitor fix of issue 4439.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-25 06:01:16 +00:00
Lea Anthony
386034e1ef Update nightly release script 2025-09-25 14:42:51 +10:00
Lea Anthony
c6f6b0d054 Update nightly release script 2025-09-25 14:03:59 +10:00
Lea Anthony
91ee276115 Move to d2 diagrams in docs 2025-09-25 14:02:19 +10:00
Lea Anthony
bfd7a6279c chore(v3): bump to v3.0.0-alpha.29 and update changelog [skip ci] 2025-09-25 13:57:32 +10:00
Richard Bidin
335fa0bcc5
[V3 Alpha] Improves macOS Window menu support (#4588)
* feat: Binds window menu to app windows

* chore: disables tab feature & controls from menu by default

* docs: Adds title to example for it to show in the window menu item

* style: removes redundant SetBackgroundColor call

* chore: rolls back disabling tab controls for a future optional config

* docs: adds change description to unreleased notes

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-25 13:30:59 +10:00
Zach Botterman
ff6a333621
[v3] macOS Dock Service (#4451)
* dock service

* add docs and update comments

* remove unneeded doc imports

* update comment

* update comment

* update comment

* update changelog

* consolidate to dock service

* update examples + thread safety

* fix linux

* update docs

* thread safety

* Update v3/pkg/services/dock/dock_darwin.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-09-24 07:30:02 +00:00
Riad Afridi Shibly
da9fd9690d
fix: v3-alpha wails3 cli installation path (#4597)
* fix: v3-alpha wails3 cli installation path

* Update Changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-24 05:45:49 +00:00
Olivier Cornu
c179893911
fix: compilation issue when using react+nextJs application (#4585)
* fix: compilation issue when using react+next application

When building with next, I got an error during the "collecting page data" step.
Cannot find module '/home/node/application/node_modules/@wailsio/runtime/dist/utils' imported from /home/node/application/node_modules/@wailsio/runtime/dist/contextmenu.js] {
code: 'ERR_MODULE_NOT_FOUND',

* doc: added fix in the changelog

* fix: updated UNRELEASED_CHANGELOG.md

* doc: follow naming convention

* Remove v2 changelog entry

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-20 04:37:46 +00:00
Josh Ghiloni
afbbcc9521
Check for empty buffers instead of nil in responsewriter (#4576)
* Check for empty buffers instead of nil in responsewriter

Use Case:

I am using a service that implements `http.Handler` to send streaming
video to the frontend. Reliably, when sending fragmented MP4 data on
MacOS, the app would panic because the buffer being sent through the
response passed a not-nil check but would panic when accessing the first
byte of the buffer.

This PR addresses that by checking if the buffer is not empty instead of
nil, accounting for the case where len(buf) == 0 and cap(buf) > 0, or
maybe where buf[0] == '\0' (I'm not sure how the nil checks work for
slices)

* Update UNRELEASED_CHANGELOG

* Update v3/internal/assetserver/webview/responsewriter_darwin.go

nil and len check

---------

Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
2025-09-16 16:03:07 -04:00
Atterpac
c567263f56
Bump version to 3.0.0-alpha.69 (#4569) 2025-09-09 14:41:20 +10:00
younggann
9d51280ec6
fix(macOS): Use visibleFrame for window centering to exclude menu bar (#4516)
* fix(macOS): Use visibleFrame for window centering to exclude menu bar

The windowCenter() function was using [screen frame] which includes
the menu bar and dock areas, causing windows to appear positioned
too high on the screen when centered.

This change uses [screen visibleFrame] instead, which excludes the
menu bar and dock areas, resulting in proper visual centering.

Fixes vertical centering issue on macOS in Wails v3 alpha.

* Update v3/UNRELEASED_CHANGELOG.md

* Update changelog entry format

---------

Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-07 09:35:08 +00:00
Lea Anthony
f4b9677bdc fix(v3-alpha): correct version.txt content to v3.0.0-alpha.27 2025-09-07 14:40:21 +10:00
Lea Anthony
04ebc69fc6 Resolve version.txt conflict to v3.0.0-alpha.27 2025-09-07 14:39:44 +10:00
Lea Anthony
1993ae3d8f chore(v3-alpha): set base version to v3.0.0-alpha.27 for next nightly (alpha.28) 2025-09-07 14:34:03 +10:00
Lea Anthony
f7326d8fef v3.0.0-alpha.27 2025-09-07 14:06:08 +10:00
Copilot
89ef7f7c55
Fix v3 release pipeline: correct git operation order to prevent version lag (#4546)
* Initial plan

* Fix v3 release pipeline: reorder git operations and add missing trigger workflow

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>

* Potential fix for code scanning alert no. 159: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-09-02 20:39:21 +10:00
Etesam
91f4906908
[v3] Liquid glass redefinition error (#4542)
* Fixed issue with redefinition of NSGlassEffectViewStyle

* Added entry to changelog

* Updated enum names

* Fix docs

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-30 11:57:21 +10:00
github-actions[bot]
043c4a0d94 v3.0.0-alpha.26 2025-08-24 02:40:05 +00:00
Lea Anthony
4bfc52f0b5
Add native Liquid Glass effect support for macOS (#4534)
* feat: Implement native Liquid Glass effect for macOS

feat: Add platform check for Liquid Glass demo

Show informative dialog on Windows/Linux explaining that the Liquid Glass
effect is a macOS-specific feature. The demo will exit gracefully on
non-macOS platforms.

docs: Add Liquid Glass feature to unreleased changelog

feat: Enhanced Liquid Glass effect with NSVisualEffectMaterial support

Major improvements to the Liquid Glass implementation for macOS:

- Added comprehensive NSVisualEffectMaterial support with 15+ material options
- Removed debug NSLog statements for cleaner production code
- Created multi-window demo showcasing 7 different glass effects:
  * Light Style - Clean light appearance
  * Dark Style - Dark themed glass
  * Vibrant Style - Enhanced transparency
  * Blue Tint - Custom RGBA tint color example
  * Sheet Material - NSVisualEffectMaterialSheet
  * HUD Window - Ultra-light HUD material
  * Content Background - With warm tint color
- Added Material field to MacLiquidGlass struct for fine-grained control
- Improved demo design with proper Title Case and cleaner layout
- Fixed logo sizing to prevent blur
- All windows fully draggable with InvisibleTitleBarHeight
- Added comprehensive README documentation

The implementation now provides developers with complete control over the
glass effect appearance, supporting both native NSGlassEffectView (macOS 15.0+)
and NSVisualEffectView fallback for older systems.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

feat: Implement native Liquid Glass effect for macOS

- Add support for NSGlassEffectView on macOS 15.0+
- Implement runtime detection of native glass APIs
- Add fallback to enhanced NSVisualEffectView for older systems
- Update liquid glass demo with frameless windows for better visibility
- Support all NSGlassEffectView properties (cornerRadius, tintColor, style)
- Properly handle webview layering with glass effect
- Remove binary from version control

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Address CodeRabbit review feedback

- Comment out unimplemented ReduceMotion and StaticMode fields
- Remove overly broad draggable CSS properties
- Add corner radius validation
- Improve CSS with proper pointer-events and user-select
- Add clarifying comments about future features

* fix: Remove unimplemented ReduceMotion and StaticMode fields

Completely remove the commented-out performance optimization fields
as they are not implemented and have no timeline for implementation.

* fix: Update windowRemoveVisualEffects to also remove NSGlassEffectView instances

The cleanup function now properly removes both NSVisualEffectView and
NSGlassEffectView instances to prevent orphaned effect layers. Uses
NSClassFromString to avoid hard references to NSGlassEffectView which
is only available on macOS 15.0+.

* fix changelog

* Update v3/pkg/application/webview_window_darwin.m

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update v3/pkg/application/webview_window_darwin.m

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: Fix compilation errors in windowSetLiquidGlass

- Add missing NSGlassEffectViewStyle enum definition
- Fix undefined tintColor variable by creating NSColor before use
- Add autorelease to prevent memory leaks for allocated views

These issues were causing CI build failures while working locally due to different compiler settings.

* Update Taskfile.yaml

* feat: Implement groupID and groupSpacing for NSGlassEffectView

- Add runtime detection for groupIdentifier/groupName selectors
- Apply groupID via performSelector if supported
- Apply groupSpacing via KVC if supported
- Parameters are now functional when NSGlassEffectView supports them
- Maintains backward compatibility by checking selector availability

* test: Add liquid-glass example to test suite

- Add liquid-glass to EXAMPLEDIRS in Taskfile.yaml
- Ensures the example is tested during CI builds
- Validates compilation on different platforms

Addresses review comment about missing test coverage

* fix: Correct NSGlassEffectView availability to macOS 26.0

- Update @available checks from macOS 15.0 to 26.0 for NSGlassEffectView
- NSGlassEffectView is a private API introduced in macOS 26.0
- Update README to reflect correct version requirement
- Keep NSVisualEffectMaterial checks at 15.0 as those are different APIs

* fix: Prevent exceptions from unsafe WebView reparenting

- Remove early WebView addition to glassView.contentView
- Consolidate all WebView reparenting in one safe location
- Always call removeFromSuperview before adding to new parent
- Set frame and autoresizing mask after safe reparenting
- Prevents NSInternalInconsistencyException from multiple parents

* fix: Make WebView reparenting more robust and thread-safe

- Always call removeFromSuperview before adding to new parent
- Remove brittle superview check, always detach and reattach
- Check both webView and glassContentView are non-nil before operations
- Ensure all UI operations run on main thread with dispatch_sync
- Set frame and autoresizing mask after safe reparenting

* Tidy up

* Update changelog

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-24 07:16:19 +10:00
github-actions[bot]
8115b88a71 v3.0.0-alpha.25 2025-08-16 02:37:32 +00:00
Josh Ghiloni
15812b4f80
fix: make options in update build-assets override (#4505)
* fix: make options in update build-assets override

Before this fix, if `-config` was passed to `wails3 update
build-assets`, the values in the config file, even if they were empty,
would be used. Now, we only use the config file value if the value was
not passed in on the command line (or is the zero value or default value
for the option).

I'll be honest, I feel a little dirty about this implementation since
I had to copy string constants out of struct tags. Not very DRY of me.
That said, there was no obvious way to get the default value of a given
option. If I missed something, happy to have this corrected, but I've
tested it and it seems to be doing the things it should be doing.

* Update v3 changelog
2025-08-15 18:10:25 +10:00
github-actions[bot]
47af2d2d48 v3.0.0-alpha.24 2025-08-13 02:39:39 +00:00
Lea Anthony
fb664a7c48
[v3] Sanitise browser URL (#4500)
* Sanitise the browser urls!
2025-08-12 21:20:36 +10:00
Aldrich Asuncion
b7414a4303
[v3] Fix SetBackgroundColour on Windows (#4492)
* Fix SetBackgroundColour on Windows

Update Chromium window color on calls to SetBackgroundColour.

* update changelog

* v3.0.0-alpha.23

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 20:45:24 +10:00
github-actions[bot]
fdff7e7b21 v3.0.0-alpha.22 2025-08-10 02:50:53 +00:00
Lea Anthony
bf805b4152
Update CLI to pass through variables (#4488)
* feat: Update CLI to pass parameters through to Task commands

- Modified build and package commands to accept otherArgs parameter
- Updated task wrapper to forward CLI variables to Task
- Enhanced task.go to properly parse and handle CLI variables (KEY=VALUE format)
- Fixes issue where 'wails3 build' and 'wails3 package' commands weren't forwarding parameters

Fixes #4422

* Update changelog

* Apply suggestion from @coderabbitai[bot]

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Fix cli.mdx

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-09 21:44:30 +10:00
Eugene Medvedev
c2ba85663f
Correct nfpm.yaml template package dependencies. (#4481)
* Correct nfpm.yaml template package dependencies.

As is, the `nfpm.yaml` template pulls in `-dev` versions of the packages the built Wails application actually relies on, in addition to `build-essential`. Which will work, but is way overkill. This PR corrects this.

I have tested this on an Ubuntu 22.04 VM and a Rocky Linux 10 VM, *(which actually necessitated attaching the EPEL repository)* but I did not verify Arch beyond looking up packages.

Additionally, it appears that the package name for RPM distro family is not in tune with the rest of them, referring to an earlier version of webkit2gtk, which has also been corrected.

**P.S.** Could we supply our own templates or updatable build files pretty please?

* Addressing points brought up.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-09 18:29:31 +10:00
Lea Anthony
3f11d4e3fa
feat: Add Content Protection for Windows and macOS (#4485)
* feat: Add Content Protection for Windows and macOS

- Prevents window contents from being captured by screen recording/sharing software
- Windows: Uses WDA_EXCLUDEFROMCAPTURE on Windows 10 2004+, falls back to WDA_MONITOR
- macOS: Uses NSWindowSharingType to set window as read-only for screen sharing
- Added ContentProtectionEnabled option to WebviewWindowOptions
- Added SetContentProtection() method for runtime control
- Added comprehensive documentation and example usage

* fix changelog.mdx

* Misc fixes

* Misc fixes

* Update v3/pkg/w32/user32.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Remove debug line

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-09 17:12:39 +10:00
Lea Anthony
fe717c42b5
Refactor to using Window interface (#4471)
Refactor window interface to eliminate type assertions and improve code maintainability
2025-08-09 15:28:08 +10:00
github-actions[bot]
1a03404983 v3.0.0-alpha.21 2025-08-07 02:49:31 +00:00
COD3HUNT3R
b3c01f4c67
[v3] fix linux .desktop file appicon variable (#4477)
* [v3] fix linux .desktop file appicon variable

* Update UNRELEASED_CHANGELOG.md

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-06 22:03:25 +10:00
Oussama Sethoum
26a18ef7a0
[v3] Fix WindowUnMinised event not fired when the window was Maxmised on Windows platform. (#4478)
* fix: v3-alpha WindowUnMinimise not fired when window is maximized ( Windows )

* add fix to changelog.mdx

* Apply suggestion from @coderabbitai[bot]

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-06 22:00:56 +10:00
github-actions[bot]
69929c2c37 v3.0.0-alpha.20 2025-08-06 02:49:12 +00:00
Yules
c02ba8f5d6
[v3] update docs to reflect changes from Manager API Refactoring (#4476)
* (docs) installation.mdx: update required Go version to 1.24

* (docs) update for Manager API Refactoring https://github.com/wailsapp/wails/pull/4359

* add entry in UNRELEASED_CHANGELOG.md to satisfy github actions

* thx coderabbitai

* thx coderabbitai
2025-08-05 23:59:45 +10:00
github-actions[bot]
1cf9042063 v3.0.0-alpha.19 2025-08-05 02:50:29 +00:00
Lea Anthony
d863e525e3
Fix Windows crash bug (#4460)
* ## Summary

I've successfully fixed the nil pointer dereference bug in the Wails v3 system tray functionality on Windows. Here's what I addressed:

**Root Cause**: The bug occurred in `systemtray_windows.go:80` where `*trayBounds = PhysicalToDipRect(*trayBounds)` was dereferencing a potentially nil pointer without checking.

**Fixes Applied**:

1. **`positionWindow` method (lines 80-82)**: Added nil check for `trayBounds` before dereferencing
2. **`bounds` method (lines 121-123, 129-131)**: Added checks for uninitialized `hwnd` and nil return from `GetSystrayBounds`
3. **`iconIsInTrayBounds` method (lines 147-149, 155-157, 160-162)**: Added similar protective checks and taskbar position validation
4. **`getScreen` method (lines 173-175)**: Added `hwnd` initialization check
5. **`openMenu` method (lines 45-47)**: Added nil check for `trayBounds`

**Key Improvements**:
- Added proper initialization checks for `s.hwnd == 0`
- Added nil pointer checks for all Windows API return values
- Ensured graceful error handling instead of panics
- Maintained existing functionality while preventing race conditions

The fix addresses the race condition where system tray operations could be called before the tray was fully initialized, preventing the nil pointer dereference panic described in issue #4456.

* Update changelog
2025-08-04 20:45:01 +10:00
Atterpac
10447e6fcd
[V3] Drag-n-Drop Zones and improvements (#4318)
* new events

* macOS dnd improvements

* wailsio adds for dropzone

* update example

* sorta working

the top 300px of the window are not dropabble for some reason i suspect it has to do with the drag enter/drag leave xy as the performOperation needed to use the ContentView for appropriate X/Y

* implement attribute detection for data-wails-dropzone

* docs

* pass x/y dnd linux

* cleanup exmample

* changelog

* pass all attributes to golang on dragdrop

* filetree example

* fix dnd build windows

* Fix windows dnd

* update docs

* remove debug log

* appease the security bot

* Fix changelog

* Fix changelog

* Revert "Fix event generation issues."

This reverts commit ae4ed4fe

* Fix events

* Fix merge conflicts. Fix events generation formatting

* Update docs

* Fix duplicate bundledassets import causing build failures

Remove duplicate import of bundledassets package that was causing
compilation errors in PR #4318. The import was declared twice in
the same import block, causing "bundledassets redeclared" errors.

Fixes build issues in GitHub Actions for drag-and-drop zones feature.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Replace fmt.Printf debug statements with globalApplication.debug

Replace all fmt.Printf debug logging statements in drag-and-drop
functionality with proper globalApplication.debug calls. This provides:

- Consistent logging with the rest of the application
- Proper key-value structured logging
- Better integration with the application's logging system
- Cleaner debug output format

Changes:
- application_darwin.go: Replace 2 fmt.Printf calls
- webview_window.go: Replace 6 fmt.Printf calls
- webview_window_windows.go: Replace 13 fmt.Printf calls
- Remove unused fmt import from application_darwin.go

All debug messages maintain the same information but now use
structured logging with key-value pairs instead of printf formatting.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add nil checks to WindowEventContext methods

Ensure all WindowEventContext methods properly handle nil c.data
by initializing the map when it's nil. This prevents panics when
methods are called on contexts that haven't been properly initialized.

Changes:
- DroppedFiles(): Add nil check and map initialization
- setCoordinates(): Add nil check and map initialization
- setDropZoneDetails(): Add nil check and map initialization
- DropZoneDetails(): Add nil check and map initialization

All methods now follow the same pattern as setDroppedFiles()
where a nil data map is automatically initialized to prevent
runtime panics during drag-and-drop operations.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update v3/pkg/application/webview_window_darwin.m

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* reinstate events docs.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-04 20:40:19 +10:00
hkhere
ca449a7706
[V3] Windows: fix(application): handle error and type assertion in save file dialog (#4284)
* fix(application): handle error and type assertion in save file dialog

---------

Co-authored-by: hkhere <hk@tinyclouds.cn>
Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-04 19:57:53 +10:00
mbaklor
9fe9c6647e
[V3] windows: fix html drag and drop (#4259)
* fix(windows): disable external drag only when EnableDragAndDrop is set

* update changelog for html dnd fix

* remove redundant commented out code for windows dnd

* Fix changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
2025-08-04 19:29:47 +10:00
github-actions[bot]
1227f140b7 v3.0.0-alpha.18 2025-08-03 02:53:39 +00:00
Hudolus
4c70d4501e
Custom Windows Webview2 Args (#4467)
* Adding the ability to pass custom args to windows webview2

---------

Co-authored-by: Jason Gibson <jason@harbingerinteractive.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-02 21:03:41 +10:00
Lea Anthony
ed81ab01e7
Support allowsBackForwardNavigationGestures (#4453)
* ## Summary

I have successfully implemented support for `allowsBackForwardNavigationGestures` in Wails v3. Here's what I accomplished:

### Investigation Results
- **Issue Status**: The feature was **NOT** previously implemented in Wails v3
- **go-webview2**: This library is Windows-only and doesn't provide macOS WKWebView features
- **Need**: A native implementation was required specifically for macOS WKWebView

### Implementation Details
1. **Added new option**: `AllowsBackForwardNavigationGestures u.Bool` to `MacWebviewPreferences`
2. **Extended C bridge**: Updated the C struct to pass the preference to Objective-C code
3. **Implemented WKWebView setting**: Added code to set `webView.allowsBackForwardNavigationGestures` during initialization
4. **Updated preference processing**: Extended the Go code to handle the new preference

### Key Files Modified
- `v3/pkg/application/webview_window_options.go`: Added the preference option
- `v3/pkg/application/webview_window_darwin.go`: Implemented the C bridge and WKWebView configuration

### Usage Example
```go
window.SetOptions(application.WebviewWindowOptions{
    Mac: application.MacWindow{
        WebviewPreferences: application.MacWebviewPreferences{
            AllowsBackForwardNavigationGestures: u.True(),
        },
    },
})
```

### Testing
-  Code compiles successfully
-  Created working example demonstrating the feature
-  Follows existing Wails v3 patterns and conventions

### Benefits
- Provides native macOS two-finger swipe navigation
- Better performance than JavaScript alternatives
- Maintains accessibility features
- Seamless integration with existing Wails v3 API

The implementation is ready for testing and could be submitted as a PR to the Wails repository. The feature addresses the exact requirements from GitHub issue #1857 and provides both specific and API-consistent access to WKWebView's navigation gesture functionality.

* Perfect! I have:

1.  Removed the `NAVIGATION_GESTURES_FEATURE.md` file
2.  Removed the `example_navigation_gestures.go` file 
3.  Updated the `UNRELEASED_CHANGELOG.md` with a FIX entry

The changelog entry properly documents that this fix adds support for `allowsBackForwardNavigationGestures` in macOS WKWebView to enable two-finger swipe navigation gestures, referencing issue #1857.

The implementation is now clean and ready, with only the essential code changes remaining and the changelog properly updated to reflect the fix.
2025-08-02 21:02:52 +10:00
Lea Anthony
a9222b538d
Fix: Disabled menu item callback (#4469)
* Fix: macOS disabled menu item callback issue

Fixes bug where menu items that are initially disabled do not fire
their OnClick callbacks after being enabled via SetEnabled(true).

Problem:
- When creating disabled menu items, actions were not set
- When re-enabling, targets were not properly restored based on action type
- This caused callbacks to never fire for initially-disabled items

Solution:
1. Always set action during menu item creation regardless of disabled state
2. Set appropriate targets based on action type and disabled state
3. Enhanced setMenuItemDisabled to restore correct targets when re-enabling:
   - Custom callbacks (@selector(handleClick)): target = menuItem
   - Role-based actions (system selectors): target = nil (responder chain)

This ensures that menu items with OnClick callbacks work correctly
regardless of their initial disabled state.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update changelog

* Update changelog

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-02 20:22:09 +10:00
Lea Anthony
b0871c19e1
[v3] Fix: Vite server not cleaned up when build fails (#4436)
* fix: properly clean up Vite server when build fails

Ensures the Vite server process is terminated when a build fails
during 'wails3 dev', preventing port conflicts on subsequent runs.

Fixes #4403

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: add defer for watcher cleanup and tidy up returns

- Add defer cleanup() to ensure resources are always freed
- Remove manual cleanup in error path since defer handles it
- Simplify error handling for better maintainability

Addresses feedback on PR #4436

* fix: prevent channel deadlock in watcher cleanup

- Separate cleanup logic from channel notification
- cleanup() only stops the engine
- signalCleanup() handles both cleanup and channel notification
- Prevents deadlock when function exits normally

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-02 17:48:01 +10:00
Lea Anthony
55277fd695
feature: V3 alpha feature/snapassist support (#4463)
* initial implementation

* Push missed files

* linux fix

* Update changelog, runtime and docs.
2025-08-02 16:59:49 +10:00
TDF
6539c80ba2
Add goModTidy function to clean up Go module dependencies during inst… (#4286)
* Add goModTidy function to clean up Go module dependencies during installation (#4283)

* Add goModTidy function and update changelog for automatic execution after wails init (#4283)

* Update CLI documentation to clarify bypassing 'go mod tidy' during project initialization (#4283)

* Add -skipgomodtidy flag to CLI and update installation logic to conditionally run go mod tidy

* Update CLI documentation to reflect default value of -skipgomodtidy flag and clean up code (#4283)

* Update docs/src/content/docs/guides/cli.mdx

* fix changelog

---------

Co-authored-by: Triadmoko  Denny Fatrosa <triadmoko.fatrosa@codemi.co.id>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-02 15:51:30 +10:00
Lea Anthony
68c14d711b Prevent v3 workflow from running on PRs against master
Add explicit base_ref checks to ensure the v3 build and test workflow
only runs for PRs targeting the v3-alpha branch.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 14:03:23 +10:00
github-actions[bot]
afcdb15503 v3.0.0-alpha.17 2025-07-31 02:48:09 +00:00
Zach Botterman
48e3bd3dd4
[v3] bugfix/windows linux notifications (#4450)
* fix windows encoding

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-30 12:40:58 +00:00
Lea Anthony
8d999ba34d Fix pipeline error
https://github.com/wailsapp/wails/actions/runs/16568203492/job/46853333131?pr=4446
2025-07-28 22:15:09 +10:00
Lea Anthony
5f1c2ff6dc Fix pipelines compile error 2025-07-28 21:34:57 +10:00
Lea Anthony
d9a003b56c
Merge and remove test release files 2025-07-26 08:26:56 +10:00
Lea Anthony
4721add9b8
Remove test release-notes.txt file 2025-07-26 08:21:14 +10:00
github-actions[bot]
09e71d82b5 v3.0.0-alpha.16 2025-07-25 22:17:30 +00:00
Lea Anthony
c2f25131d7
Fix YAML syntax error - indent heredoc content 2025-07-26 08:15:03 +10:00
Lea Anthony
a412b70be5
Fix nightly release workflow issues
- Fix backtick command substitution error using here-document
- Add extra spacing before disclaimer section
- Simplify commit message to just version number
2025-07-26 08:13:20 +10:00
Lea Anthony
81d1459b68
Add tests and documentation for --create-release-notes flag
- Add comprehensive test files for release notes creation
- Add edge case testing for empty changelogs and comments
- Add documentation explaining how the feature works
- Verify all functionality works as expected
2025-07-26 07:55:23 +10:00
Lea Anthony
db5b0dcd4b
Add --create-release-notes flag to release script 2025-07-26 07:45:37 +10:00
Lea Anthony
67058c0923
Fix UNRELEASED_CHANGELOG.md path in release script
The file is located at v3/UNRELEASED_CHANGELOG.md, not at the repository root
2025-07-25 22:03:26 +10:00
Lea Anthony
6dc51420ac
Update release workflow 2025-07-25 21:56:28 +10:00
github-actions[bot]
7bd1b4911c 🤖 Automated nightly release v3.0.0-alpha.15
Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-25 11:47:24 +00:00
ALMAS
33a9c05213
[V3] feat: add Windows getAccentColor implementation (#4427)
* [V3] feat: add Windows getAccentColor implementation

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-25 21:46:05 +10:00
Lea Anthony
9d6e6232d6
v3.0.0-alpha.14 2025-07-25 19:36:50 +10:00
Zach Botterman
23bf36d36f
[v3] improve service names for js/ts bindings (#4405)
* name services

* update badge service with new app api

* update examples

* add dist dirs

* update changelog

* fix up examples

* Fix changelog

---------

Co-authored-by: Zach <zach@Zachs-MacBook-Pro-2.local>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-25 09:23:22 +10:00
Lea Anthony
906cd7003d
Fix TS error in runtime 2025-07-25 08:24:01 +10:00
Lea Anthony
f8e4eeb405
Fix build 2025-07-25 07:49:13 +10:00
Lea Anthony
9f2b992d36
Update changelog-validation-v3.yml 2025-07-25 07:43:59 +10:00
Lea Anthony
c08d2d72c3
Fix build 2025-07-25 07:31:29 +10:00
Lea Anthony
bf762699bd
Dark mode menus changelog 2025-07-25 06:41:28 +10:00
Lea Anthony
a29b4f0861
feat: Add full dark mode support for Windows menus 2025-07-25 06:31:46 +10:00
Atterpac
b5ef00fd42
Merge pull request #4289 from atterpac/v3/deeplink
V3 Deep-link (Port of v2 feature)
2025-07-23 15:24:59 -06:00
Lea Anthony
cc5b46cba1
Merge branch 'v3-alpha' into v3/deeplink 2025-07-22 21:46:04 +10:00
Lea Anthony
b566b1830d Fix CLI docs. Closes #4334 2025-07-22 07:06:49 +10:00
Lea Anthony
12022e4947 Fix tests for CI 2025-07-22 07:03:11 +10:00
Lea Anthony
4e2a3505bb
Update pull_request_template.md 2025-07-19 16:55:32 +10:00
Lea Anthony
fd89187c2f fix: remove branch restriction from nightly workflow job
The workflow now explicitly checks out v3-alpha branch, so the job-level
condition 'if: github.ref == refs/heads/v3-alpha' is no longer needed
and was preventing manual runs from other branches.
2025-07-18 14:44:12 +10:00
Lea Anthony
7a71836224 fix: explicitly checkout v3-alpha branch in nightly workflow
Ensures the workflow always checks out the v3-alpha branch regardless
of which branch triggers it (schedule from master or manual dispatch)
2025-07-17 06:59:29 +10:00
Lea Anthony
23e1f8923c Nightly release action 2025-07-17 06:28:19 +10:00
Atterpac
101b09676d Merge remote-tracking branch 'wails/v3-alpha' into v3/deeplink 2025-07-15 08:54:46 -06:00
Atterpac
810dfbb11b fix linux .desktop generation 2025-07-15 08:52:53 -06:00
Lea Anthony
e018ad6b92 v3.0.0-alpha.12 2025-07-15 22:55:57 +10:00
Lea Anthony
234aea19bd Update runtime 2025-07-15 22:55:12 +10:00
Atterpac
5b88b485a9
window.ToggleFrameless() api (#4317)
* `window.ToggleFrameless() api`

* changelog and runtime version bump

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-15 22:53:21 +10:00
Lea Anthony
112ba7ad4e Revert release script 2025-07-15 22:42:01 +10:00
Kodumulo
584872eb9a
[V3] fix: enhance doctor command to verify Windows SDK dependencies (#4392)
* fix: enhance doctor command to verify Windows SDK dependencies ([#4390](https://github.com/wailsapp/wails/issues/4390))

- Updated the doctor command to check for the presence of Windows SDK dependencies, improving the setup process for Windows users.
- Added relevant entry to the changelog for better documentation of this fix.

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-15 18:43:23 +10:00
Lea Anthony
1481b30610
Merge branch 'v3-alpha' into v3/deeplink 2025-07-15 17:03:11 +10:00
Etesam
e11479170a
Added getAccentColor implementation to Env (#4399)
* Added getAccentColor implementation

* Added entry to changelog

* Update v3/pkg/application/environment_manager.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update docs/src/content/docs/changelog.mdx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Moved update to unreleased section

* Fixed typo in changelog

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-15 03:44:34 +00:00
Atterpac
919524f287
Merge branch 'v3-alpha' into v3/deeplink 2025-07-12 19:41:09 -06:00
Atterpac
cd06965b1a handle linux file association 2025-07-12 19:36:54 -06:00
Atterpac
c15155b29b fix custom protocol example to new api 2025-07-12 19:13:13 -06:00
Atterpac
426b9fc61e rename context consts 2025-07-12 19:09:57 -06:00
Lea Anthony
fb8f12aca9 Add minimal changelog workflow for testing 2025-07-13 11:04:37 +10:00
Atterpac
6857fb840a build example dist 2025-07-12 19:03:13 -06:00
Lea Anthony
9668e348d8 Add simple test workflow to verify GitHub Actions recognition 2025-07-13 10:58:52 +10:00
Lea Anthony
b029a84fe4 Clean up changelog validation - single working workflow
Remove all test files, extra workflows, and artifacts.
Keep only:
- changelog-validation-v3.yml (main workflow)
- v3/scripts/validate-changelog.go (validation script)

Tested and working with act.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:55:04 +10:00
Lea Anthony
4532b625c9 Clean up changelog validation workflows
- Remove problematic large workflow files
- Add final clean 'Changelog Validation (v3)' workflow
- Tested and working with act
- Uses external Go script for maintainability

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:53:09 +10:00
Atterpac
89cafbab55 regenerate events 2025-07-12 18:50:36 -06:00
Lea Anthony
50fe8cb855 Add test workflow to verify changelog validation works
Successfully tested with act - validation script and PR diff detection working

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:37:04 +10:00
Lea Anthony
425c3469b2 Add clean v3 changelog validation workflow with external Go script
- Created external Go validation script in v3/scripts/
- Clean workflow file without embedded scripts (much smaller)
- Should properly show workflow_dispatch trigger in GitHub

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:33:00 +10:00
Lea Anthony
6a91656914 Add simplified v3 changelog validation workflow for testing
Testing if GitHub Actions accepts smaller workflow files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:23:46 +10:00
Lea Anthony
a3affdc963 Fix YAML multiline commit message - simplify to single line
Fixed line 422 YAML syntax error by using single-line commit message
Verified working with act dry-run test

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:17:18 +10:00
Lea Anthony
b8fdee2a3a Fix all YAML syntax errors in v3-check-changelog workflow
- Fixed multiline commit message formatting
- Fixed JavaScript template literals in GitHub Actions script sections
- Verified with act dry-run test

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:14:38 +10:00
Lea Anthony
cad1fae3e4 Fix YAML syntax error in v3-check-changelog workflow
Fixed multiline commit message using HEREDOC syntax on line 421

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:13:02 +10:00
Lea Anthony
52cd0d4cc7 Add v3 changelog validation workflow
This workflow validates changelog entries in PRs targeting v3-alpha branch:
- Detects entries added to already-released versions using diff analysis
- Automatically moves misplaced entries to [Unreleased] section
- Uses proper ### Category format for Keep a Changelog compliance
- Commits fixes back to PR with clear feedback

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 10:11:01 +10:00
Lea Anthony
a25ea74d5c chore: Changelog checker 2025-07-13 09:57:57 +10:00
Atterpac
d3d95e07d1 Merge remote-tracking branch 'wails/v3-alpha' into v3/deeplink 2025-07-12 00:32:13 -06:00
Lea Anthony
a5c43da52f v3.0.0.alpha-11 2025-07-12 14:40:53 +10:00
Lea Anthony
cbfbf4699a Merge remote-tracking branch 'upstream/v3-alpha' into v3-alpha 2025-07-12 14:39:22 +10:00
Atterpac
e8765607ff
advanced bindings documentation (#4404)
* advanced bindings documentation

* update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-11 21:12:03 +10:00
Lea Anthony
9f96439ba1
feat: Add distribution-specific build dependencies for Linux (#4339) (#4345)
* feat: Add distribution-specific dependencies using nfpm overrides

Implements feature #4339 by enhancing the nfpm.yaml.tmpl to use nfpm's built-in
overrides feature for different Linux distributions and package formats.

## Changes Made:

### Enhanced nfpm configuration with overrides:
- **Default**: Debian 12/Ubuntu 22.04+ with WebKit 4.1 dependencies
  - Uses libgtk-3-dev, libwebkit2gtk-4.1-dev, build-essential, pkg-config
- **RPM override**: RHEL/CentOS/AlmaLinux/Rocky Linux with WebKit 4.0 dependencies
  - Uses gtk3-devel, webkit2gtk3-devel, gcc-c++, pkg-config
- **Arch override**: Arch Linux with WebKit 4.1 dependencies
  - Uses gtk3, webkit2gtk-4.1, base-devel, pkgconf

This approach uses nfpm's native override system to automatically select
the correct dependencies based on the target package format, ensuring
that each distribution gets the appropriate WebKit version and package names.

### How it works:
- DEB packages get WebKit 4.1 dependencies (default)
- RPM packages get WebKit 4.0 dependencies (RHEL/CentOS compatibility)
- Arch packages get WebKit 4.1 dependencies with Arch-specific package names

Fixes #4339

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: Enhance wails doctor with WebKit fallback support

Improves the doctor command to better detect WebKit dependencies across
different Linux distributions by adding fallback package support.

## Changes Made:

### Enhanced Package Manager Detection:
- **APT (Debian/Ubuntu)**: Added WebKit 4.1 → 4.0 fallback support
- **DNF (Fedora/RHEL)**: Added webkit2gtk4.0-devel fallback for older systems
- **Zypper (SUSE)**: Added webkit2gtk4_1-devel for modern SUSE distributions
- **Emerge (Gentoo)**: Added support for both webkit-gtk:6 and webkit-gtk:4 slots
- **Pacman (Arch)**: Added fallback from webkit2gtk-4.1 to webkit2gtk

### Improved Developer Experience:
- Doctor command now tries newer WebKit versions first, falls back gracefully
- Provides more accurate dependency detection across distributions
- Better guidance for developers on different Linux systems

### How It Works:
- Each package manager lists multiple WebKit package options in order of preference
- The dependency system tries packages in order until it finds one that's available
- Developers get appropriate installation commands for their specific distribution

This complements the nfpm overrides by ensuring developers can properly
set up their development environment regardless of distribution.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* update changelog

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-11 21:03:33 +10:00
Lea Anthony
568aa6602f
v3.0.0-alpha.10 2025-07-06 22:33:06 +10:00
Lea Anthony
b635b8eef5
Fix for pipelines. New blog post 2025-07-06 22:21:09 +10:00
Lea Anthony
504d456dea
Fix window visibility issue #2861 - initialize showRequested based on Hidden option 2025-07-06 15:55:36 +10:00
Lea Anthony
0bb90b421f fix: correct workflow schedule syntax 2025-07-06 11:19:16 +10:00
Lea Anthony
859e843d02 Add complete automated release workflow
- Detects changes in v2 and v3-alpha branches independently
- Runs release scripts and extracts changelog notes
- Creates GitHub releases with proper tags and release notes
- Supports dry-run mode for testing
- Authorization controls for release permissions
- Comprehensive change detection and summary reporting
- Currently disabled (no schedule) for safety
2025-07-06 09:50:45 +10:00
Lea Anthony
71d11c9469 Update v3 release script to extract and print release notes
- Added extractReleaseNotes function to extract content from Unreleased section
- Script now prints release notes between delimiter markers
- Release notes can be captured for use in GitHub release tags
- Maintains existing functionality for updating changelog with version/date
- Mirrors v2 release script functionality for consistency
2025-07-06 09:18:42 +10:00
Lea Anthony
9b0c653948 Add test workflow for nightly releases
- Created test-nightly-releases.yml for safe testing
- Added local test scripts for changelog extraction and version logic
- Updated nightly-releases.yml with changelog integration
- Ready for dry-run testing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 06:59:28 +10:00
Aldrich Asuncion
67edf873be
[v3] Fix OpenFileManager on windows (#4375)
* Fix OpenFileManager on windows

- Use cmd.SysProcAttr.CmdLine to invoke explorer.exe on Windows
- separate platform-specific code in package fileexplorer into separate files

* Update changelog.mdx

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-03 05:36:59 +10:00
Lea Anthony
0fc13fee63 fix: restrict v3 workflow to only v3-alpha PRs with v3 changes
Add path filter to ensure Build + Test v3 workflow only runs on
PRs targeting v3-alpha branch that actually modify v3/ directory.
This prevents the workflow from running on master branch PRs.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02 20:24:58 +10:00
Lea Anthony
4b98ffd590 fix: remove conflicting dir setting in test:examples task
Remove `dir: examples` from test:examples task to fix working directory
conflict in GitHub Actions. The workflow sets working-directory to v3,
and the individual example tasks already specify their own directories.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02 19:47:29 +10:00
Etesam
c244eeb21f
fixed bug with nil window in processURLRequest (#4366)
* fixed bug with nil window in processURLRequest

* added row to changelog and added log

* removed old code

* Fix getWindowForID undefined error in processURLRequest

Replace non-existent globalApplication.getWindowForID() call with
the correct globalApplication.Window.GetByID() method. This fixes
the compilation error while preserving the nil check functionality
that was intended in the original PR.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add explicit nil check for safer window validation

Add an additional nil check alongside the boolean check from GetByID()
to handle edge cases where a window interface could theoretically be
nil even when the lookup indicates success. This provides defense
in depth against nil pointer dereferences.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Change window not found log to debug level

Use globalApplication.debug() instead of log.Println() for missing
window ID messages. This is more appropriate as it's diagnostic
information rather than a user-facing error.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove unused log import

Remove the "log" import that is no longer needed after switching
to globalApplication.debug() for logging.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-02 05:27:38 +10:00
Lea Anthony
3087ba0bdc
Refactor Manager API to use singular naming convention (#4367)
* Refactor Manager API to use singular naming convention

This is a RENAME-ONLY exercise that converts the Wails v3 Manager API from plural to singular naming for better consistency and clarity.

## Changes Applied

### API Transformations:
- `app.Windows.*` → `app.Window.*`
- `app.Events.*` → `app.Event.*`
- `app.ContextMenus.*` → `app.ContextMenu.*`
- `app.KeyBindings.*` → `app.KeyBinding.*`
- `app.Dialogs.*` → `app.Dialog.*`
- `app.Menus.*` → `app.Menu.*`
- `app.Screens.*` → `app.Screen.*`

### Files Updated:
- **Core Application**: 22 files in `v3/pkg/application/`
- **Examples**: 43+ files in `v3/examples/`
- **Documentation**: 13 files in `docs/src/content/docs/`
- **CLI Tests**: 1 file in `v3/internal/commands/`

### Critical Constraints Preserved:
-  Event string constants unchanged (e.g., "windows:WindowShow")
-  Platform event names preserved (events.Windows, events.Mac, etc.)
-  TypeScript API remains compatible
-  All functionality intact

### Verification:
-  All examples build successfully (`task test:examples` passes)
-  Application package compiles without errors
-  Documentation reflects new API patterns

## Benefits

- **Improved Clarity**: Singular names are more intuitive (`app.Window` vs `app.Windows`)
- **Better Consistency**: Aligns with Go naming conventions
- **Enhanced Developer Experience**: Clearer autocomplete and API discovery

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix generator testcases and add cross-platform test cleanup

- Update 28 generator testcase files to use singular API (app.Window.New() vs app.Windows.New())
- Add cross-platform cleanup system with Go script to remove test artifacts
- Add test:all task with comprehensive testing and automatic cleanup
- Fix cleanup to target files vs directories correctly (preserves source directories)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix remaining Windows CI failures by updating all plural API usage to singular

Fixed the last remaining instances of old plural Manager API usage:
- tests/window-visibility-test/main.go: Updated all app.Windows -> app.Window and app.Menus -> app.Menu
- internal/templates/_common/main.go.tmpl: Updated app.Windows -> app.Window and app.Events -> app.Event
- pkg/services/badge/badge_windows.go: Updated app.Windows -> app.Window (Windows-specific fix)

These fixes address the Windows CI failures where platform-specific files still used the old API.
The tests didn't catch this locally because Windows-specific files only compile on Windows.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-22 12:19:14 +10:00
Lea Anthony
66ad93d9d5
feat: Complete App API restructuring with organized manager pattern (#4359)
* Initial refactor

* More refactoring of API

* Update gitignore

* Potential fix for code scanning alert no. 134: Incorrect conversion between integer types

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Update v3/internal/generator/testcases/variable_single_from_function/main.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update v3/pkg/application/context_menu_manager.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update v3/pkg/application/event_manager.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update v3/pkg/application/context_menu_manager.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Fix build issues

* Fix build issues

* Address CodeRabbitAI review feedback: fix goroutines, error handling, and resource management

- Fix infinite goroutines with proper context cancellation and ticker cleanup
- Add error handling to window creation calls
- Prevent unbounded slice growth in gin-service and screen examples
- Use graceful shutdown patterns with app.Context().Done()

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix manager API refactor issues and complete all v3 example builds

- Fixed slices import missing in event_manager.go
- Changed contextMenusLock from sync.Mutex to sync.RWMutex for RLock/RUnlock compatibility
- Updated all globalApplication calls to use new manager pattern (Windows.Current, Events.OnApplicationEvent, etc.)
- Fixed Events.Emit vs Events.EmitEvent method signature mismatch
- Corrected NewWithOptions calls (returns 1 value, not 2) in examples
- Added comprehensive .gitignore patterns for all v3 example binaries
- All 34 v3 examples now build successfully

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Linux platform manager API calls

- Updated events_common_linux.go: OnApplicationEvent → Events.OnApplicationEvent
- Updated application_linux.go: OnApplicationEvent → Events.OnApplicationEvent
- Ensures Linux builds work with new manager pattern

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix remaining NewWithOptions assignment errors in examples

- Fixed badge/main.go: removed assignment mismatch and unused variable
- Fixed badge-custom/main.go: removed assignment mismatch and variable reuse
- Fixed file-association/main.go: removed assignment mismatch and unused variable
- All examples now use correct single-value assignment for NewWithOptions()

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Implement multi-architecture Docker compilation system for Linux builds

### New Features
- **Multi-Architecture Support**: Native ARM64 and x86_64 Docker compilation
- **Auto-Detection**: Automatic architecture detection in Taskfile tasks
- **Complete Cross-Platform Testing**: 129 builds (43 examples × 3 platforms)

### Docker Infrastructure
- `Dockerfile.linux-arm64`: Ubuntu 24.04 ARM64 native compilation
- `Dockerfile.linux-x86_64`: Ubuntu 24.04 x86_64 native compilation
- Architecture-specific build scripts with colored output and error handling
- Native compilation eliminates CGO cross-compilation issues

### Task System Updates
- **New Tasks**: `test:examples:all` for complete cross-platform testing
- **Architecture-Specific**: `test:examples:linux:docker:arm64/x86_64`
- **Auto-Detection**: `test:example:linux:docker` detects host architecture
- **Clear Parameter Usage**: Documented when DIR parameter is/isn't needed

### Build Artifacts
- Architecture-specific naming: `testbuild-{example}-linux-{arch}`
- ARM64: `testbuild-badge-linux-arm64`
- x86_64: `testbuild-badge-linux-x86_64`

### Documentation
- Complete TESTING.md overhaul with multi-architecture support
- Clear command reference distinguishing single vs all example builds
- Updated build performance estimates (10-15 minutes for 129 builds)
- Comprehensive troubleshooting and usage examples

### Infrastructure Cleanup
- Removed deprecated `Dockerfile.linux-proper`
- Updated .gitignore for new build artifact patterns
- Streamlined Taskfile with architecture-aware Linux tasks

**Status**: Production-ready multi-architecture Docker compilation system

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix CLI appimage testfiles API migration and add to testing system

### API Migration Fixes
- **Event Registration**: Updated `app.OnApplicationEvent()` → `app.Events.OnApplicationEvent()`
- **Window Manager**: Updated `app.CurrentWindow()` → `app.Windows.Current()`
- **Window Creation**: Updated `app.NewWebviewWindowWithOptions()` → `app.Windows.NewWithOptions()`
- **Menu Manager**: Updated `app.SetMenu()` → `app.Menus.SetApplicationMenu()`
- **Screen API**: Updated `app.GetPrimaryScreen()/GetScreens()` → `app.Screens.GetPrimary()/GetAll()`

### Testing System Enhancement
- **New Task**: `task test:cli` for CLI-related code compilation testing
- **Integration**: Added CLI testing to `task test:examples` and `task test:examples:all`
- **Documentation**: Updated TESTING.md to include CLI code testing

### Files Fixed
- `internal/commands/appimage_testfiles/main.go`: Complete API migration
- `Taskfile.yaml`: Added CLI testing tasks and integration
- `TESTING.md`: Updated documentation to reflect CLI testing

This ensures CLI code API migrations are caught by our testing system and prevents
future build breakages in CLI components.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Enhance testing infrastructure and fix API migration issues across v3 codebase

This commit introduces comprehensive testing infrastructure to catch API migration issues and fixes all remaining compatibility problems:

## Enhanced Testing Infrastructure
- Added `test:cli:all` task to validate CLI components compilation
- Added `test:generator` task to test code generator test cases
- Added `test:infrastructure` task for comprehensive infrastructure testing
- Updated `test:examples` to include CLI testing automatically

## API Migration Fixes
- Fixed manager-based API calls in window visibility test (app.Windows.NewWithOptions)
- Fixed manager-based API calls in screen manager tests (sm.GetAll, sm.GetPrimary)
- Fixed event registration API in 6 service test files (app.Events.OnApplicationEvent)
- Updated menu API calls (app.Menus.SetApplicationMenu)

## Cross-Platform Validation
- All 43 examples compile successfully on Darwin
- CLI components compile without errors
- Generator test cases validate correctly
- Application package tests pass compilation

The enhanced testing system integrates with existing GitHub Actions CI/CD and will automatically catch future API migration issues, ensuring ecosystem stability as the v3 API evolves.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix template API migration issues and add comprehensive template testing

This commit resolves the GitHub Actions template generation failures by fixing API migration issues in the template source files and adding comprehensive template testing to the infrastructure.

## Template API Fixes
- Fixed `app.NewWebviewWindowWithOptions()` → `app.Windows.NewWithOptions()` in main.go.tmpl
- Fixed `app.EmitEvent()` → `app.Events.Emit()` in main.go.tmpl
- Updated the _common template used by all framework templates (lit, react, vue, etc.)

## Enhanced Testing Infrastructure
- Added `test:templates` task to validate template generation and compilation
- Tests lit and react template generation with API migration validation
- Integrated template testing into `test:infrastructure` task
- Templates now tested alongside CLI components, generator, and application tests

## GitHub Actions Compatibility
- Resolves template generation failures in CI/CD pipeline
- Ensures all generated projects use correct manager-based API calls
- Maintains template consistency across all supported frameworks

The template testing validates that generated projects compile successfully with the new manager-based API pattern, preventing future template generation failures in GitHub Actions.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Reorganize Docker testing files into test directory

- Move Dockerfiles from root to test/docker/
- Update all Taskfile.yaml Docker build paths
- Update TESTING.md documentation
- Maintain full backward compatibility

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Address CodeRabbit review: improve resource management and API patterns

- Store event handler cleanup functions for proper resource management
- Fix goroutine management with context-aware cancellation patterns
- Add documentation for error handling best practices
- Improve API consistency across examples

Examples updated:
- plain: Fixed event handlers and goroutine lifecycle
- badge: Added cleanup function storage
- gin-example: Proper event handler management
- gin-service: Service lifecycle cleanup

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Address CodeRabbit nitpicks: optimize Docker images and docs

Docker Optimizations:
- Add --no-install-recommends and apt-get clean for smaller images
- Add SHA256 checksum verification for Go downloads
- Remove unnecessary GO111MODULE env (default in Go 1.16+)
- Add hadolint ignore for here-doc blocks

Build Enhancements:
- Add --pull flag to Docker builds for fresh base images
- Improve build reliability and consistency

Documentation Fixes:
- Add proper language tags to code blocks (bash, text)
- Fix heading formatting and remove trailing punctuation
- Improve syntax highlighting and readability

Files updated:
- test/docker/Dockerfile.linux-arm64
- test/docker/Dockerfile.linux-x86_64
- Taskfile.yaml
- TESTING.md

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update changelog: document Manager API refactoring and improvements

Breaking Changes:
- Manager API Refactoring: Complete reorganization from flat structure
  to organized managers (Windows, Events, Dialogs, etc.)
- Comprehensive API migration guide with all method mappings
- References PR #4359 for full context

Added:
- Organized testing infrastructure in test/docker/ directory
- Improved resource management patterns in examples
- Enhanced Docker images with optimizations and security

This documents the major architectural changes and improvements
made to the Wails v3 API and development infrastructure.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Support cross-platform testing

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-21 19:51:14 +10:00
Byron
7b7f3cd754
[v3] Make filtered dialog examples code work for linux (#4287)
* Make examples code work

* Changelog
2025-06-19 06:47:34 +10:00
Atterpac
0b7d1f4f67
fix incorrect window destroy (#4323)
* fix incorrect window destroy

* remove duplicate common signals

* Better handling of "shouldclose"

* Better handling of "shouldclose"

* Fix ABI safety issues in exported function for macOS window closing

Address CodeRabbit feedback on ABI safety and data races:
- Change exported function signature to use C types (C.uint, C.bool) for ABI safety
- Convert unconditionallyClose field from bool to atomic uint32 for thread safety
- Update all read/write operations to use atomic operations across platforms

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-18 07:31:55 +10:00
Lea Anthony
a55c1fedcb fix: Resolve MSIX template field reference errors in wails3 init
This fixes the template execution errors that occurred when running 'wails3 init' with MSIX-related templates. The issue was that the templates were trying to access fields under an 'Info' sub-struct that doesn't exist in the BuildConfig context.

Changes:
- Fixed app_manifest.xml.tmpl to use direct field references (e.g., .ProductIdentifier instead of .Info.ProductIdentifier)
- Fixed template.xml.tmpl with the same field reference corrections
- Added missing MSIX-related fields to BuildAssetsOptions struct (Publisher, ProcessorArchitecture, ExecutablePath, ExecutableName, OutputPath, CertificatePath)
- Set appropriate default values for the new fields in GenerateBuildAssets function

Resolves the error: "can't evaluate field Info in type commands.BuildConfig"

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-17 21:22:25 +10:00
Lea Anthony
01ed7affc9
Update semgrep runner (#4356)
* Update semgrep workflow

---------

Co-authored-by: joshhardy <joshhardy@users.noreply.github.com>
2025-06-16 22:11:32 +10:00
Lea Anthony
fbd39c24f4 fix: Properly declare iconIsInTrayBounds variable in Windows systray
Fixes Windows compilation error where iconIsInTrayBounds was being
assigned without declaration. Declares the variable explicitly
before assignment to resolve 'undefined: iconIsInTrayBounds' error.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-16 00:33:47 +10:00
Lea Anthony
edfa223e2f chore: Remove documentation files from v3-alpha branch
Remove CLAUDE.md and API_MANAGERS.md files that were not intended
for this branch. The Windows compilation fixes remain intact.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-16 00:26:01 +10:00
Lea Anthony
5452135dcb fix: Resolve Windows compilation errors blocking CI builds
Fixes two Windows-specific compilation issues that were preventing
GitHub Actions builds from passing:

## Issues Fixed

### 1. chromium.PutIsVisible undefined error
- **Problem**: Method call `chromium.PutIsVisible(true)` not available in
  current go-webview2 package version
- **Solution**: Commented out the call with TODO note for future restoration
- **File**: pkg/application/webview_window_windows.go:1686-1690
- **Impact**: Temporarily disables efficiency mode prevention until method available

### 2. Variable redeclaration error
- **Problem**: `err` variable redeclared with `:=` in same function scope
- **Solution**: Changed second assignment from `:=` to `=` for proper reassignment
- **File**: pkg/application/systemtray_windows.go:65
- **Context**: iconIsInTrayBounds assignment in positionWindow function

## Additional Changes

- Added CLAUDE.md for development guidance
- Added API_MANAGERS.md documenting new manager-based API structure
- Implemented functional DMG package creation (internal/commands/dmg/)
- Restored DMG support in CLI tool with proper validation

## Verification
-  Commands package builds successfully
-  Main CLI builds successfully
-  Tests run without compilation errors
-  Example builds pass

Resolves GitHub Actions Windows build failures introduced in recent commits.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-16 00:21:08 +10:00
Lea Anthony
3e9f7fce4e Fix DMG import 2025-06-15 23:55:39 +10:00
Lea Anthony
a8c8417d16
Fix for windows icon handle handle leak. 2025-06-15 20:59:20 +10:00
Lea Anthony
1bdeda8530
linux build error fixes 2025-06-14 21:26:41 +10:00
Lea Anthony
4cc8d1cc2f
Add MSIX packaging support for Windows applications 2025-06-14 21:23:59 +10:00
Lea Anthony
16ea4c72fe
docs: Add comprehensive technical documentation for v3 contributors 2025-06-14 21:23:58 +10:00
Lea Anthony
86f891673a Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha 2025-06-14 13:00:30 +10:00
Lea Anthony
d03a63e1b7 fix: Implement robust cross-platform window visibility fallback for issue #2861
Addresses the issue where application windows fail to show on Windows 10 Pro
due to efficiency mode preventing WebView2 NavigationCompleted events.

## Changes Made

### Windows (webview_window_windows.go)
- **Decouple window container from WebView state**: Window now shows immediately
- **Add timeout fallback**: 3-second timeout to show WebView if navigation is delayed
- **Prevent efficiency mode**: Set WebView2 IsVisible=true per Microsoft recommendation
- **Enhanced state tracking**: Added showRequested, visibilityTimeout, windowShown fields
- **Robust navigation completion**: Improved handler to work with new visibility logic

### macOS (webview_window_darwin.go)
- **Documentation**: Added comment noting macOS already follows best practices
- **No functional changes**: macOS implementation already robust

### Linux (webview_window_linux.go, linux_cgo.go, linux_purego.go)
- **Add missing methods**: Implemented show()/hide() methods in main Linux file
- **CGO implementation**: Added windowShow()/windowHide() delegation methods
- **Purego implementation**: Added windowShow()/windowHide() methods for purego builds
- **Consistent behavior**: Matches CGO implementation with position saving

## Implementation Pattern

Adopts the following pattern:
1. **Separate concerns**: Window container vs WebView content readiness
2. **Immediate visibility**: Show window container immediately
3. **Progressive enhancement**: Show WebView content when ready
4. **Robust fallbacks**: Timeout and multiple strategies for edge cases

## Testing Considerations

- Windows 10 Pro efficiency mode scenarios
- WebView2 navigation delays or failures
- Cross-platform consistency
- Performance impact of timeout mechanisms

Fixes #2861

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 12:59:44 +10:00
Lea Anthony
d126a3196c Update github.com/jaypipes/ghw dependency to v0.17.0
- Upgraded from v0.13.0 to v0.17.0 to get latest improvements
- Includes enhanced hardware detection capabilities
- Bug fixes for GPU path parsing and PCI address handling
- Verified wails doctor command continues to work correctly

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-12 23:03:34 +10:00
Lea Anthony
1d75dd030f feat: Add Windows UAC configuration support to Wails v3
- Add UAC trustInfo section to Windows manifest template with default 'asInvoker' execution level
- Update badge example manifest to include UAC configuration
- Add comprehensive documentation for Windows UAC configuration
- Ensure consistent UAC behavior across different machines

Fixes issue where Windows applications lost admin requirements when copied between machines.
The UAC configuration is now always present in the manifest, making it explicit and easily
customizable by users since v3 expects users to edit their own build assets.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-12 22:23:09 +10:00
Lea Anthony
fe29d1405e Add Linux stubs for badge service and fix capabilities compilation
- Add badge_linux.go with no-op implementation for Linux compatibility
- Fix capabilities_linux.go to not require webkit version detection
- Add missing build tag to webkit_linux.go

Resolves "undefined: badge.NewWithOptions" and "undefined: badge.New" errors
that were causing Linux build failures in GitHub Actions for badge examples.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-11 23:45:34 +10:00
Bas van Zanten
2da5955db7
fix: update command (#4311)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-06-03 07:42:38 +10:00
Lea Anthony
ae4ed4fe31
Fix event generation issues. 2025-05-31 17:13:54 +10:00
Lea Anthony
2c99f9e43c
Update go test workflow 2025-05-31 07:52:19 +10:00
Lea Anthony
371e05cb1f
fix: Correct indentation for build_results job in build-and-test-v3.yml (must be under jobs:) 2025-05-31 07:37:34 +10:00
Lea Anthony
471ea9350b
Update workflows 2025-05-31 07:11:22 +10:00
Lea Anthony
323327b53f
Fix v3 workflow
(cherry picked from commit d3d87d09aa)
2025-05-30 08:22:19 +10:00
Aram
83005be066
[V3] Update systray.mdx example (#4307)
* Update systray.mdx

GUI operations must run on the main thread I guess? this example calling systray.Run() from a non-main thread context and it will panic.

* Update systray.mdx

OnClick function takes *application.Context. the example if not complete
2025-05-26 21:03:37 +10:00
Atterpac
2134bc6e0d docs 2025-05-18 16:52:50 -04:00
Atterpac
9ebc82afbb windows custom protocol 2025-05-18 16:48:18 -04:00
Atterpac
f143bd6866 linux custom protocol + .desktop 2025-05-18 16:48:09 -04:00
Atterpac
a1c26a3fd9 remove unneeded from example 2025-05-18 16:47:56 -04:00
Atterpac
47f264d010 custom protocol application_darwin 2025-05-18 16:35:06 -04:00
Atterpac
b7c6c82cf3 Add ApplicationLaunchedWithUrl event 2025-05-18 16:34:00 -04:00
Atterpac
6e93efcdc1 mac deeplink delegate 2025-05-18 16:33:15 -04:00
Atterpac
a49285bc21 update mac build assets for custom protocol support 2025-05-18 16:33:02 -04:00
Atterpac
dd206c4b67 custom protocol example 2025-05-18 16:32:33 -04:00
Lea Anthony
3716acaae4
Fix permissions issue for labeller 2025-05-15 06:35:41 +10:00
Lea Anthony
fe4e6c766b
More workflow updates
(cherry picked from commit 0c24aa4313)
2025-05-15 06:26:45 +10:00
Lea Anthony
fa5b486966
Dependency updates 2025-05-15 06:26:20 +10:00
Lea Anthony
44fcdf9ad7
Increase stale workflow operations limit 2025-05-14 20:55:08 +10:00
Lea Anthony
582ad826b8
Add GitHub Actions workflow for stale issue management 2025-05-14 20:53:27 +10:00
Lea Anthony
45d9bbcfae
Update stale bot configuration to protect older issues 2025-05-14 20:49:28 +10:00
Lea Anthony
cbbba79340
Add issue management automation tools 2025-05-14 20:47:45 +10:00
Lea Anthony
2abd05f783
Merge pull request #4234 from popaprozac/dock-badge
[V3] Badging
2025-04-28 22:27:50 +10:00
Lea Anthony
191ce6bba3
Merge pull request #4246 from superDingda/v3-alpha-bugfix/4236_menuitem_restore_position
[V3] Restore hidden menuitem at correct position
2025-04-28 22:19:36 +10:00
popaprozac
934d8c8871 update docs 2025-04-26 23:58:04 -07:00
Zach Botterman
b942293823
Update docs/src/content/docs/learn/badges.mdx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-26 23:55:54 -07:00
popaprozac
900da01ad7 add set custom badge and update docs/examples/readmes 2025-04-26 23:49:07 -07:00
popaprozac
51c0d1dcdc update headers 2025-04-26 22:58:06 -07:00
popaprozac
af3c6afb3b update docs and readmes 2025-04-26 22:52:14 -07:00
dingda.li
c922a7e685 fix: restore hidden menuitem at correct position 2025-04-27 12:00:13 +08:00
popaprozac
40117e6565 fallback to default badge if font cannot be used 2025-04-26 19:15:05 -07:00
popaprozac
ce8c10247d fix double uninit 2025-04-26 19:04:53 -07:00
popaprozac
9e3786c9ea add comments and macOS stub 2025-04-26 18:58:11 -07:00
popaprozac
800810f092 extract taskbar 2025-04-26 18:48:27 -07:00
Lea Anthony
2bfbe7f902
Merge pull request #4245 from justinmoon/flush
fallbackResponseWriter implement Flush()
2025-04-27 10:25:38 +10:00
Justin Moon
1618d53967 Update changelog 2025-04-26 17:41:21 -05:00
popaprozac
dabc18f663 center circle color 2025-04-26 12:59:52 -07:00
popaprozac
73705dc56a add build tag 2025-04-26 12:57:17 -07:00
Justin Moon
754a41537a fallbackResponseWriter implement Flush() 2025-04-26 13:25:44 -05:00
Lea Anthony
8d9dc19e17
Update badge-custom example 2025-04-26 15:40:48 +10:00
Lea Anthony
e9916158c0
Add badge options. Add new example. 2025-04-26 14:40:22 +10:00
Lea Anthony
52df4837e0
Tidy up 2025-04-26 13:57:00 +10:00
Lea Anthony
f7aaf848ba
Update v3/pkg/services/badge/badge_windows.go
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-25 15:48:44 +10:00
Lea Anthony
5154f0b60f
Add FontManager to better handle fonts. Remove the go-findfont dependency. Add Go examples. 2025-04-25 15:17:39 +10:00
Lea Anthony
9fa596780b
Include assets in example 2025-04-25 14:23:24 +10:00
popaprozac
59cc71bdbb fix code block 2025-04-24 20:45:50 -07:00
Zach Botterman
c0a83efe6d
Update docs/src/content/docs/learn/badges.mdx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-24 20:34:15 -07:00
popaprozac
7287c1eb5c render label on windows and sensible defaults 2025-04-24 20:23:28 -07:00
popaprozac
d1d57c132c rabbit suggestions 2025-04-24 16:10:14 -07:00
popaprozac
f311a33bdd update changelog 2025-04-24 15:50:55 -07:00
popaprozac
b55f4ea8e3 add example, update docs, update changelog 2025-04-24 15:47:14 -07:00
popaprozac
be28da26b8 windows badge 2025-04-24 15:47:09 -07:00
popaprozac
94d03d5f13 badge service 2025-04-24 15:47:03 -07:00
Lea Anthony
685d8101aa
Merge pull request #4230 from popaprozac/windows-improvements
[v3] Windows notifications improvements
2025-04-23 15:45:38 +10:00
Zach Botterman
833d533ed7
Merge branch 'v3-alpha' into windows-improvements 2025-04-22 21:38:13 -07:00
Lea Anthony
da0da5fc69
Add wails3 tool version command 2025-04-23 10:29:51 +10:00
popaprozac
66ba876a65 better errors 2025-04-22 16:21:33 -07:00
popaprozac
9fcede47f7 windows improvements 2025-04-22 14:23:32 -07:00
Lea Anthony
421b75ef21
Multiple fixes. Thanks @kron! 2025-04-19 10:27:25 +10:00
Lea Anthony
89a70b94de
Merge pull request #4222 from wailsapp/v3-alpha-bugfix/4061-input-issue-mac
v3-alpha-bugfix/4061-input-issue-mac
2025-04-19 09:19:39 +10:00
Lea Anthony
facc47bd30
Merge branch 'v3-alpha' into v3-alpha-bugfix/4061-input-issue-mac 2025-04-18 18:43:53 +10:00
Fabio Massaioli
0222bfa728
Fix empty selector 2025-04-18 10:32:18 +02:00
Lea Anthony
edb90bdaab
Merge pull request #4130 from oSethoum/v3-alpha-fix-window-events
[v3] fix: fullscreen, unfullscreen, unminise and unmaximise window events …
2025-04-18 16:33:00 +10:00
Lea Anthony
b2a0e2972a
Merge branch 'v3-alpha' into v3-alpha-fix-window-events 2025-04-18 16:30:54 +10:00
Lea Anthony
e973f5ad86
Merge branch 'v3-alpha' into v3-alpha-bugfix/4061-input-issue-mac 2025-04-18 16:18:24 +10:00
Lea Anthony
f59798ef1d
Update changelog 2025-04-18 16:15:39 +10:00
Lea Anthony
eb8a1b53d2
Fix for input on mac 2025-04-18 16:11:14 +10:00
Lea Anthony
2d57b5b1d5
Merge pull request #4126 from robin-samuel/v3-aplpha-fix/build-assets-version
fix: remove prefix from default version in config.yml to avoid nsis error
2025-04-18 16:08:53 +10:00
Lea Anthony
29706a4bf8
Merge branch 'v3-alpha' into v3-aplpha-fix/build-assets-version 2025-04-18 16:08:22 +10:00
Lea Anthony
b80ec34550
Merge pull request #4128 from wailsapp/v3-alpha-bugfix/gin-support
Gin support
2025-04-18 15:58:02 +10:00
Lea Anthony
6344a8a553
Merge branch 'v3-alpha' into v3-alpha-bugfix/gin-support 2025-04-18 15:57:41 +10:00
Lea Anthony
1f5e9852e4
Update v3/examples/gin-service/services/gin_service.go
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-18 15:49:41 +10:00
Lea Anthony
e97c390f12
Update v3/examples/gin-service/README.md
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-18 15:47:59 +10:00
Lea Anthony
7e5edfdfe3
Merge pull request #4134 from oSethoum/v3-alpha-bugfix-auto_fill-auto_password_save
[v3] fix: general auto save and general password auto save always enabled
2025-04-18 15:46:32 +10:00
Lea Anthony
81211d56d9
Merge branch 'v3-alpha' into v3-alpha-bugfix-auto_fill-auto_password_save 2025-04-18 15:45:53 +10:00
Lea Anthony
7453df5aa1
Merge pull request #4219 from yulesxoxo/v3-alpha
fix: correct Windows filename in generate:icons task
2025-04-18 15:38:24 +10:00
yulesxoxo
b3cd25cb4a feat: update changelog 2025-04-16 15:27:05 +02:00
yulesxoxo
a9c031155a fix: correct Windows filename in generate:icons task 2025-04-16 15:22:05 +02:00
Lea Anthony
afb4bd933d
Merge pull request #4098 from popaprozac/notifications_darwin
[v3] Notifications API
2025-04-13 13:01:04 +10:00
Lea Anthony
a8e91e7aec
Merge branch 'v3-alpha' into notifications_darwin 2025-04-12 14:42:36 +10:00
Lea Anthony
f891096d97
Fix for webview2 detection 2025-04-12 13:24:36 +10:00
Lea Anthony
be1d500974
Update v3/examples/notifications/build/windows/nsis/wails_tools.nsh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-12 13:21:58 +10:00
Lea Anthony
0b546a1856
Merge branch 'v3-alpha' into notifications_darwin 2025-04-12 12:56:26 +10:00
Lea Anthony
9e2e980e52
Merge pull request #4133 from IanVS/template-dependencies
[v3] Move runtime to "dependencies", organize package.json files
2025-04-12 12:46:24 +10:00
Lea Anthony
371e103290
Merge branch 'v3-alpha' into template-dependencies 2025-04-12 12:39:13 +10:00
Lea Anthony
0a05348220
Merge pull request #4188 from TheGB0077/patch-2
[v3] Normalize Windows paths on system Dialogs invocations
2025-04-12 12:32:05 +10:00
Lea Anthony
7977a81606
Merge branch 'v3-alpha' into patch-2 2025-04-12 12:31:08 +10:00
Lea Anthony
3fba0cfb22
Merge pull request #4171 from popaprozac/bundle-sign
[v3] Bundling/signing
2025-04-12 12:30:27 +10:00
popaprozac
c482c85c7b revert and append .dev 2025-04-09 15:48:52 -07:00
popaprozac
dcda263fc8 Merge branch 'v3-alpha' of https://github.com/wailsapp/wails into bundle-sign 2025-04-09 15:27:02 -07:00
Gabriel Lima
f46352dbe1 Create dialogs_windows_test.go 2025-04-09 16:21:59 -03:00
Lea Anthony
1d575e3453
Merge pull request #4156 from johannes-luebke/patch-1
[v3] fix: unhandled error in dialogs.go
2025-04-09 18:32:38 +10:00
Lea Anthony
bd74170fb6
Merge pull request #4177 from wimaha/v3-alpha-feature/mac-file-association
[v3] Support for File-Associations on macOS
2025-04-09 18:23:17 +10:00
Gabriel Lima
1b00dc9ac7 small typo 2025-04-07 20:30:01 -03:00
Gabriel Lima
e62c0b0b80 Add fix to changelog [skip ci] 2025-04-07 20:27:11 -03:00
Gabriel Lima
f6750c3a48 delete redundant method 2025-04-07 13:35:37 -03:00
Gabriel Lima
3f22e1fe0c
Normalize Windows paths by default
JS code ends up escaping Windows paths when data gets passed around from backend to the frontend, so those should be normalized beforehand.
2025-04-06 22:36:22 -03:00
popaprozac
75dbe85ad6 remove comptime check 2025-03-29 23:39:50 -07:00
popaprozac
9a41b0ce9f move icon method, impl interface, check compat, don't panic! 2025-03-29 23:36:25 -07:00
Wilko
5f8a858aa9 Update changelog.mdx 2025-03-29 21:40:50 +01:00
Wilko
8c3ee8f1bd Support for File-Associations on macOS 2025-03-29 21:06:53 +01:00
popaprozac
b313f2cee1 fix docs 2025-03-27 14:43:23 -07:00
popaprozac
bd5c82ef35 fix docs 2025-03-27 14:12:53 -07:00
popaprozac
1022f47f14 fix docs 2025-03-27 13:27:39 -07:00
popaprozac
743882a9b9 update docs/changelog 2025-03-27 13:10:45 -07:00
popaprozac
9db28ec5fd update docs/changelog 2025-03-27 11:47:53 -07:00
popaprozac
38ac5f799b sign all things 2025-03-27 11:24:13 -07:00
popaprozac
1db65a84c3 stage docs 2025-03-26 23:12:46 -07:00
popaprozac
af5abda8b1 update example 2025-03-24 21:34:10 -07:00
popaprozac
7d0f7f4652 revert linux wait and update payload on win 2025-03-24 21:26:02 -07:00
popaprozac
276c653b1d update example 2025-03-24 20:22:29 -07:00
popaprozac
d25f923721 wait on dbus 2025-03-24 20:07:31 -07:00
popaprozac
b102279630 update example 2025-03-24 16:05:57 -07:00
popaprozac
1f821667f2 ensure cat id is set for macOS and other rabbit suggestions 2025-03-24 13:56:47 -07:00
popaprozac
7f496c971d fix linux note 2025-03-24 00:16:45 -07:00
popaprozac
9a4542347d follow dbus spec 2025-03-23 23:40:03 -07:00
popaprozac
a68391880c remove deadlock 2025-03-23 00:05:20 -07:00
popaprozac
5ddb27fd3f move chan creation on macos and handle linux shutdown 2025-03-22 23:07:44 -07:00
popaprozac
448c78b226 rewrite and simplify linux impl 2025-03-22 22:36:29 -07:00
popaprozac
ace4f70e3a fix channel cleanup linux 2025-03-22 18:04:30 -07:00
popaprozac
9948cee1f7 monitor dbus connection 2025-03-22 17:51:51 -07:00
popaprozac
f870dcc168 handle notif content errors 2025-03-22 17:39:20 -07:00
popaprozac
b2b8f14053 windows err handling 2025-03-22 16:01:47 -07:00
popaprozac
f6a5bed582 windows err handling 2025-03-22 12:48:47 -07:00
popaprozac
81b40d2afe ensure exactly one delegate created 2025-03-22 12:16:47 -07:00
popaprozac
ef3b7d2bc3 pass service options 2025-03-22 11:51:02 -07:00
popaprozac
be1da68dbc avoid deadlock on win 2025-03-20 22:12:21 -07:00
popaprozac
5dc7bd97f2 refactor/simplify linux 2025-03-20 16:32:53 -07:00
popaprozac
9adeef2bdf fix linux and remove dup code 2025-03-20 16:21:37 -07:00
popaprozac
e55bf8dffc linux bug fix 2025-03-20 13:56:47 -07:00
popaprozac
94f245f035 bug fix 2025-03-20 13:49:49 -07:00
popaprozac
88f13369b6 reorg platform impl 2025-03-20 13:47:03 -07:00
popaprozac
b1db2bba12 add missing error 2025-03-20 10:59:12 -07:00
Johannes Lübke
471402556b chore: fix changelog 2025-03-20 16:56:33 +00:00
Johannes Lübke
010100456d chore: update changelog 2025-03-20 16:50:24 +00:00
Johannes Lübke
14d6623c13
fix: unhandled error in dialogs.go
Does lead to deadlocks otherwise
2025-03-20 14:46:24 +01:00
popaprozac
c58709c1a3 lock registry access/writes 2025-03-19 22:14:17 -07:00
popaprozac
bd857385d3 fix err message 2025-03-19 21:51:57 -07:00
popaprozac
d98f528734 Merge branch 'notifications_darwin' of github.com:popaprozac/wails into notifications_darwin 2025-03-19 21:41:14 -07:00
popaprozac
25256f747f allow only one notification service per app 2025-03-19 21:40:26 -07:00
Zach Botterman
58b5c105a5
Merge branch 'v3-alpha' into notifications_darwin 2025-03-19 18:14:31 -07:00
popaprozac
4af058bd02 more cleanup 2025-03-19 18:10:59 -07:00
popaprozac
ee885fea44 fix mem crash 2025-03-18 23:13:37 -07:00
popaprozac
b60ef7729e coderabbit impr 2025-03-18 22:46:44 -07:00
popaprozac
e4e24a0f00 clean 2025-03-18 21:18:16 -07:00
Ian VanSchooten
bccff0f73e Update changelog 2025-03-18 16:21:40 -04:00
Ian VanSchooten
137bcc5cbb
Merge branch 'v3-alpha' into template-dependencies 2025-03-18 14:03:32 -04:00
Lea Anthony
4a2dc2875f
Update semgrep action 2025-03-16 12:37:50 +11:00
Lea Anthony
3a3458cff0
Update verify steps in pipeline 2025-03-16 11:35:46 +11:00
popaprozac
e810d6a4b0 tidy 2025-03-14 23:47:59 -07:00
Zach Botterman
6d15f08db4
Merge branch 'v3-alpha' into notifications_darwin 2025-03-14 23:46:04 -07:00
popaprozac
2cb0dac648 set default action id on MATE 2025-03-14 19:13:58 -07:00
popaprozac
e46abdc793 update example 2025-03-14 19:05:27 -07:00
popaprozac
1fa68949e6 // 2025-03-14 19:03:33 -07:00
popaprozac
1e67e943df rename auth func 2025-03-14 18:58:23 -07:00
Zach Botterman
e4ec06a9c8 update example 2025-03-13 23:33:17 -07:00
Lea Anthony
bbb3a0389a
Update deps 2025-03-14 08:35:03 +11:00
Fabio Massaioli
b9e072905a
Merge branch 'v3-alpha' into template-dependencies 2025-03-13 08:12:36 +01:00
Fabio Massaioli
5bc94ce400
Fix indentation of vanilla template package.json 2025-03-13 08:11:51 +01:00
Fabio Massaioli
959ce42f26
Fix sveltekit template package.json 2025-03-13 08:09:09 +01:00
Fabio Massaioli
ee9e3973bd
Fix indentation of sveltekit-ts package.json 2025-03-13 08:07:40 +01:00
Oussama Sethoum
46dd5ef959 add: entry in changelog.mdx 2025-03-12 21:46:53 +01:00
Oussama Sethoum
0be2efc275 fix: general auto save and general password auto save always enabled 2025-03-12 20:48:05 +01:00
Lea Anthony
8abcd81f30
Merge pull request #4116 from IanVS/fix-hidden-menuitem
[V3] Fix initially-hidden menuItem [mac/win]
2025-03-13 06:34:24 +11:00
Lea Anthony
7bd3a1a15c
Merge branch 'v3-alpha' into fix-hidden-menuitem 2025-03-13 06:16:29 +11:00
Ian VanSchooten
3f2db134c2 Remove package-lock.json from templates 2025-03-12 11:39:25 -04:00
Ian VanSchooten
479e22b7c5 Clean up template package.json files 2025-03-12 11:39:25 -04:00
Oussama Sethoum
302c74e90d add: entry in the changelog.mdx for reference. 2025-03-12 00:34:50 +01:00
Lea Anthony
fe6635c1eb
Update Results stage in pipeline 2025-03-12 08:32:26 +11:00
Oussama Sethoum
635ddf5c36 fix: fullscreen, unfullscreen, unminise and unmaximise window events weren't being emitted. 2025-03-11 13:00:22 +01:00
Lea Anthony
d8671de43b
Update README 2025-03-11 21:12:16 +11:00
Jason Kulatunga
da99ea47b0
Update docs + examples.
Serve runtime from assetserver if requested.
Add gin guide, fix asset server merge, add gin example
adding http.CloseNotifier and http.Flusher interface to assetserver.contentTypeSniffer, for Gin (and other framework) compatibility.
2025-03-11 21:06:57 +11:00
Lea Anthony
b72782c35d
Update docs + examples.
Serve runtime from assetserver if requested.
2025-03-11 08:50:03 +11:00
robinsamuel
53a2620860
Merge branch 'v3-alpha' into v3-aplpha-fix/build-assets-version 2025-03-10 20:54:52 +01:00
Lea Anthony
3b101705d5
Merge pull request #4125 from robin-samuel/v3-aplpha-fix/generate-icons
fix: correct filename for Windows icon generation in Taskfile
2025-03-11 05:59:35 +11:00
robinsamuel
d0d1691004 feat: update changelog 2025-03-10 15:30:10 +01:00
robinsamuel
1bb14e16a5 feat: update changelog 2025-03-10 15:23:05 +01:00
Ian VanSchooten
d30652a6e6 Update changelog 2025-03-10 09:20:21 -04:00
robinsamuel
1a0096c169 fix: update output paths for generated icons in Taskfile 2025-03-09 23:34:12 +01:00
robinsamuel
a5eed9a486 fix: remove prefix from default version in config.yml to avoid nsis error 2025-03-09 23:18:34 +01:00
robinsamuel
d1be724f41 fix: correct filename for Windows icon generation in Taskfile 2025-03-09 23:17:35 +01:00
Lea Anthony
e4d6e54c63
Add gin guide, fix asset server merge, add gin example 2025-03-09 15:58:50 +11:00
Lea Anthony
38a4299883
Add gin guide 2025-03-09 14:38:47 +11:00
Lea Anthony
15b9118077
Add gin example 2025-03-09 14:38:46 +11:00
Jason Kulatunga
d95b77ad04
update changelog. 2025-03-09 14:38:44 +11:00
Jason Kulatunga
742b802cf7
adding http.CloseNotifier and http.Flusher interface to assetserver.contentTypeSniffer, for Gin (and other framework) compatibility. 2025-03-09 14:38:22 +11:00
Lea Anthony
bd59b8c724
Merge pull request #4119 from mbaklor/v3-alpha
[V3] add ".html" to assetFileServer requests with no extension
2025-03-08 12:02:54 +11:00
Lea Anthony
abd27b285e
Merge branch 'v3-alpha' into v3-alpha 2025-03-08 11:54:03 +11:00
Lea Anthony
fd9c37aa44
Update changelog 2025-03-08 11:52:38 +11:00
Lea Anthony
c8e3ba2d4b
PR workflow change 2025-03-08 11:44:02 +11:00
Lea Anthony
e07e924519
Remove Warp agents 2025-03-08 11:35:42 +11:00
Lea Anthony
91e9d6abe9
Merge remote-tracking branch 'IanVS/fix-hidden-menuitem' into fork/IanVS/fix-hidden-menuitem 2025-03-08 11:25:41 +11:00
Lea Anthony
866fb36b67
Add fix for application menu. Add docs 2025-03-08 11:25:06 +11:00
Ian VanSchooten
b733b1d3c4
Fix hidden menuItem on windows
And bring menu_windows into alignment with popupmenu_windows
2025-03-08 11:25:06 +11:00
Ian VanSchooten
dc662b561a
Revert systray-custom example changes 2025-03-08 11:25:06 +11:00
Ian VanSchooten
91c9c3f147
Fix comment 2025-03-08 11:25:05 +11:00
Ian VanSchooten
35cc7fd569
Avoid adding duplicate menuitems (windows)
Previously, when calling `.SetHidden(false)` on a menu item that was not hidden, a duplicate menu item was created.
2025-03-08 11:25:05 +11:00
Ian VanSchooten
5fb1a14c36
Fix registration of hidden menuItem [mac] 2025-03-08 11:25:05 +11:00
Lea Anthony
5e529aed01
Add fix for application menu. Add docs 2025-03-08 11:23:24 +11:00
Lea Anthony
03c0d4ce6f
Merge branch 'v3-alpha' into fix-hidden-menuitem 2025-03-08 11:06:42 +11:00
Lea Anthony
163beb5d58
Merge pull request #4118 from atterpac/v3/watcher-fix
v3/ Fix dev watcher - Bump refresh version
2025-03-08 10:54:18 +11:00
Michael B
f316b19c2b added assetFileServer fix to changelog.mdx 2025-03-07 15:44:24 +02:00
Michael B
10791fabbd add '.html' to requests with no extension and no file found 2025-03-07 14:43:47 +02:00
Ian VanSchooten
0a6a420503 Fix hidden menuItem on windows
And bring menu_windows into alignment with popupmenu_windows
2025-03-06 14:00:40 -05:00
Ian VanSchooten
a5fdc3a6de Revert systray-custom example changes 2025-03-06 13:58:32 -05:00
Ian VanSchooten
42c6c2b524 Fix comment 2025-03-06 08:55:50 -05:00
Ian VanSchooten
39cdd1d1e4 Avoid adding duplicate menuitems (windows)
Previously, when calling `.SetHidden(false)` on a menu item that was not hidden, a duplicate menu item was created.
2025-03-06 08:49:22 -05:00
Atterpac
fd420bff32 Bump refresh version 2025-03-05 13:02:46 -07:00
Ian VanSchooten
d7dec9eda7 Fix registration of hidden menuItem [mac] 2025-03-05 14:36:43 -05:00
popaprozac
833d8ec7dc refactor macos 2025-03-04 20:07:23 -08:00
Zach Botterman
d9af6dec32
ignore bindings notification callback
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-03-02 22:49:31 -08:00
Lea Anthony
96fa0d25f0
Merge pull request #4067 from fbbdev/v3-alpha-feature/service-api
[v3] Built-in service standardisation and enhancement
2025-03-01 16:34:32 +11:00
Lea Anthony
f87dce15ea
Merge branch 'v3-alpha' into fork/fbbdev/v3-alpha-feature/service-api
# Conflicts:
#	docs/src/content/docs/changelog.mdx
#	v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/kvstore/keyvaluestore.js
#	v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/log/loggerservice.js
#	v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/sqlite/service.js
2025-03-01 16:33:11 +11:00
GitHub Actions
d130544b1b [skip ci] Publish @wailsio/runtime v3.0.0-alpha.67 2025-03-01 05:24:18 +00:00
Lea Anthony
229dfa8f6f
Merge pull request #4104 from fbbdev/v3-alpha-feature/typescript-runtime-testdata
[v3] Testdata update + smarter npm workflow
2025-03-01 16:23:08 +11:00
Fabio Massaioli
2a424f6be5 Simplify ci pipeline 2025-02-28 22:31:10 +01:00
Fabio Massaioli
c468af839c Ignore build artifacts 2025-02-28 22:25:13 +01:00
Fabio Massaioli
7c56c4ce00 Remove build artifacts 2025-02-28 22:25:13 +01:00
Fabio Massaioli
5b6fd04b09 Stop typedoc noise 2025-02-28 22:25:13 +01:00
Fabio Massaioli
69b11109ac Smarter publish pipeline 2025-02-28 01:43:57 +01:00
Fabio Massaioli
e64cbd3e66 Test data updates 2025-02-28 01:33:00 +01:00
GitHub Actions
fc0eb760cd [skip ci] Publish @wailsio/runtime v3.0.0-alpha.66 2025-02-27 20:52:35 +00:00
Lea Anthony
3aa3e09317
Merge pull request #4100 from fbbdev/v3-alpha-feature/typescript-runtime
[v3] TypeScript runtime
2025-02-28 07:51:31 +11:00
GitHub Actions
73da97053e [skip ci] Publish @wailsio/runtime v3.0.0-alpha.65 2025-02-27 20:49:51 +00:00
Lea Anthony
835fcbecc8
[ci] Try warpbuild 2025-02-28 07:49:00 +11:00
Lea Anthony
6423abe630
Merge branch 'v3-alpha' into v3-alpha-feature/typescript-runtime 2025-02-28 07:41:04 +11:00
GitHub Actions
e1a296c68e [skip ci] Publish @wailsio/runtime v3.0.0-alpha.64 2025-02-27 20:33:57 +00:00
Lea Anthony
01a51f74e4
[ci] Better PR checks 2025-02-28 07:33:22 +11:00
GitHub Actions
183abde394 [skip ci] Publish @wailsio/runtime v3.0.0-alpha.63 2025-02-27 20:22:29 +00:00
Fabio Massaioli
9988b7eca8
[v3] Binding generator tests for Go 1.24 features (#4068)
* Enable go1.24 tests

This reverts commit e38684e7885c9c7b5ad3f704ad500c39bbce7715.

* Testdata for go1.24

This reverts commit 7ed397dc452f420551dfdd05dfe0c6a7646b3ba4.

* Require go 1.24

* Update changelog

* Add test for omitzero

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-02-28 07:21:51 +11:00
GitHub Actions
e4f0b64630 [skip ci] Publish @wailsio/runtime v3.0.0-alpha.62 2025-02-27 20:09:11 +00:00
Lea Anthony
3b045ada7b
[ci] update PR Checks conditions 2025-02-28 07:07:52 +11:00
GitHub Actions
2dcd35f181 [skip ci] Publish @wailsio/runtime v3.0.0-alpha.61 2025-02-27 20:07:10 +00:00
Lea Anthony
9ee2ca51d4
[ci] update PR Checks conditions 2025-02-28 07:06:23 +11:00
GitHub Actions
151bc6d36b [skip ci] Publish @wailsio/runtime v3.0.0-alpha.60 2025-02-27 19:14:31 +00:00
Lea Anthony
cdbe38a30e
Merge pull request #4101 from fbbdev/v3-alpha-bugfix/publish-ci-versioning
[v3] Fix npm ci
2025-02-28 06:13:58 +11:00
GitHub Actions
c96b7c693c [skip ci] Publish @wailsio/runtime 3.0.0-alpha.59 2025-02-27 19:07:58 +00:00
Lea Anthony
dee22c18ee
[ci] update PR Checks conditions 2025-02-28 06:07:09 +11:00
Fabio Massaioli
30f0ec4e9c Go mod tidy 2025-02-27 12:05:54 +01:00
Fabio Massaioli
0a0592a52e Fix npm ci 2025-02-27 12:01:43 +01:00
Fabio Massaioli
da9a9603b9 Merge branch 'v3-alpha' into v3-alpha-feature/typescript-runtime
# Conflicts:
#	docs/src/content/docs/changelog.mdx
2025-02-27 11:21:48 +01:00
GitHub Actions
28d22f7bfa [skip ci] Publish @wailsio/runtime 3.0.0-alpha.58 2025-02-27 10:02:02 +00:00
Lea Anthony
b2c43c034f
[windows]Better popup menu positioning 2025-02-27 21:01:14 +11:00
popaprozac
ad749721e9 can you tell i'm not a go programmer? 2025-02-26 19:57:21 -08:00
Zach Botterman
a807c269cc better interop with obj-c 2025-02-26 18:45:46 -08:00
Fabio Massaioli
698f9cac39 Relax typescript compile target 2025-02-27 00:46:37 +01:00
Fabio Massaioli
db9e520f08 Use safari11 as esbuild target for High Sierra support 2025-02-27 00:30:48 +01:00
Zach Botterman
3bdb3ddba3 use app icon 2025-02-26 12:30:31 -08:00
Fabio Massaioli
368678ca6b Update changelog 2025-02-26 17:36:45 +01:00
Fabio Massaioli
5da789c24f Fix creation function types 2025-02-26 16:57:16 +01:00
Fabio Massaioli
6c34e74f0a Build runtime before running go tests 2025-02-26 16:00:14 +01:00
Zach
207b162544 Merge branch 'notifications_darwin' of github.com:popaprozac/wails into notifications_darwin 2025-02-25 17:59:31 -08:00
Zach Botterman
e216b3e513 set icon 2025-02-26 09:32:32 -08:00
Zach Botterman
db2cab7b7c grab icon from app for notifications on windows 2025-02-25 18:04:08 -08:00
Zach
e86cf68b17 linux? 2025-02-25 17:58:24 -08:00
Zach Botterman
5ad3d73001 wrangle variants 2025-02-25 16:40:14 -08:00
Zach
47e5b109c0 add debug 2025-02-25 16:32:10 -08:00
Zach Botterman
60ae0c1598 test linux userInfo 2025-02-25 16:25:06 -08:00
Zach Botterman
acad85e603 update example 2025-02-25 15:59:27 -08:00
Zach Botterman
a4c4ab6c8f add id to macOS payload 2025-02-25 15:55:28 -08:00
Zach Botterman
10ae1f6029 export config from app 2025-02-25 15:04:05 -08:00
Fabio Massaioli
ed8cdfa0f6 Support older module resolution approaches 2025-02-25 21:43:35 +01:00
Zach Botterman
60c1a866f3 update example 2025-02-25 11:37:11 -08:00
Zach Botterman
050e4ef1a8 fix default complex action 2025-02-25 11:27:54 -08:00
Zach Botterman
fa498f1c5e encode user data on windows 2025-02-25 11:20:43 -08:00
Fabio Massaioli
f769fb3953 Update node action version 2025-02-25 19:12:54 +01:00
Fabio Massaioli
8dd1b61f1e Use const for system caller variable 2025-02-25 19:08:01 +01:00
Zach Botterman
7bbc27594b fix windows 2025-02-25 09:32:52 -08:00
Fabio Massaioli
5cf89f362f Update bundled runtime 2025-02-25 18:30:52 +01:00
popaprozac
135defc405 init test linux 2025-02-25 09:11:12 -08:00
Fabio Massaioli
d74ed5ab54 Nitpicks 2025-02-25 18:09:53 +01:00
Fabio Massaioli
ea98bd2e19 Rename copied files 2025-02-25 18:01:36 +01:00
Fabio Massaioli
af635f02c6 Refactor event target resolution logic 2025-02-25 17:59:17 +01:00
Fabio Massaioli
5b2c8eba80 Remove Promise monkey-patching 2025-02-25 17:53:18 +01:00
Fabio Massaioli
c774e198ee Update changelog 2025-02-25 17:48:07 +01:00
Fabio Massaioli
11866ee52f
Remove unneeded return statement
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-25 17:19:56 +01:00
Fabio Massaioli
b74b9efa8e
Fix OffAll test
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-25 17:15:45 +01:00
Fabio Massaioli
5436ebee71 Allow manual publishing of the npm package 2025-02-25 17:03:09 +01:00
Fabio Massaioli
746b38abe5 Update changelog 2025-02-25 16:39:31 +01:00
Fabio Massaioli
db6295594f Fix cancellation of promise arrays 2025-02-25 16:33:38 +01:00
Fabio Massaioli
c0f92d69a0 Restructure workflows 2025-02-25 15:09:01 +01:00
Fabio Massaioli
b59f003f61 Fix dragging system 2025-02-25 14:03:52 +01:00
popaprozac
253f67243a init linux 2025-02-24 22:39:50 -08:00
popaprozac
67adc452cb update example 2025-02-24 22:00:58 -08:00
Zach Botterman
8bbe3816b7
Merge branch 'v3-alpha' into notifications_darwin 2025-02-24 21:57:21 -08:00
popaprozac
e8ad42aa3f switch to callback style 2025-02-24 21:54:38 -08:00
Fabio Massaioli
026ee7fb78 Fix wording in runtime docs 2025-02-25 04:25:34 +01:00
Fabio Massaioli
5dbd49606b Merge branch 'v3-alpha' into v3-alpha-feature/typescript-runtime 2025-02-25 04:13:47 +01:00
Fabio Massaioli
55a0c7e605 Build more examples when testing 2025-02-25 04:11:01 +01:00
Fabio Massaioli
51223f66cd Update CI workflows 2025-02-25 04:06:25 +01:00
Fabio Massaioli
ea7660d4b1 Update docs 2025-02-25 03:34:12 +01:00
Fabio Massaioli
87ceed05fa Fix logging bug in call message processor 2025-02-25 03:33:56 +01:00
Fabio Massaioli
0dfc2b2a53 Add cancellation examples 2025-02-25 03:33:24 +01:00
Fabio Massaioli
cdb4045542 Update existing examples 2025-02-25 03:33:15 +01:00
Fabio Massaioli
14fb7ed4f7 Update binding generator to new internal API 2025-02-25 03:32:51 +01:00
Fabio Massaioli
7b2c04dcb2 Update bundled runtime 2025-02-25 03:32:30 +01:00
Fabio Massaioli
2c521e63cb Update package-lock.json 2025-02-25 03:32:09 +01:00
Fabio Massaioli
52f1b595e8 Add runtime tests 2025-02-25 03:30:59 +01:00
Fabio Massaioli
95b4bfc253 Migrate runtime to TypeScript 2025-02-25 03:30:30 +01:00
Zach Botterman
8da998191a for review 2025-02-24 17:58:05 -08:00
Zach Botterman
be716fc0ee fix input id 2025-02-24 16:47:19 -08:00
GitHub Actions
1dff481199 [skip ci] Publish @wailsio/runtime 3.0.0-alpha.57 2025-02-24 07:54:46 +00:00
Zach Botterman
3dbf0589ce update comments 2025-02-23 22:25:12 -08:00
Zach Botterman
1e3511c0d3 fix deadlock 2025-02-23 22:18:07 -08:00
Zach Botterman
983c25f69f rw safety 2025-02-23 21:59:27 -08:00
popaprozac
c904433ff3 update example 2025-02-23 16:30:13 -08:00
Zach Botterman
bf4222c9cc update example 2025-02-23 16:00:04 -08:00
Zach Botterman
978a982ab7 don't add title or body quite yet 2025-02-23 15:45:42 -08:00
Zach Botterman
cc760a173a test data with toast 2025-02-23 15:41:56 -08:00
Zach Botterman
9eab58f0d2 update comments 2025-02-23 14:40:40 -08:00
Zach Botterman
c1230d4b86 update win impl to match 2025-02-23 14:37:03 -08:00
popaprozac
f8647ff73c update min macos version 2025-02-23 14:11:32 -08:00
popaprozac
27e512d5f1 add data option to basic notification 2025-02-23 13:55:03 -08:00
Zach Botterman
ab9c460088 quick fixes 2025-02-23 11:40:39 -08:00
Zach Botterman
6d44068ede save notification categories to registry 2025-02-22 20:52:23 -08:00
Lea Anthony
a5e2e42a55
[darwin] Ensure menu updates occur on main thread 2025-02-23 15:46:03 +11:00
popaprozac
47a0977ac6 add overwrite and remove notification category 2025-02-22 20:25:03 -08:00
Zach Botterman
9f39577228 add comments 2025-02-22 20:02:26 -08:00
popaprozac
7757eae745 standalone example 2025-02-22 19:05:00 -08:00
popaprozac
c7d54e2fa9 remove app event 2025-02-22 18:58:16 -08:00
Zach Botterman
01fa3071f1 windows impl 2025-02-22 17:30:04 -08:00
popaprozac
91f1704f68 cleanup 2025-02-22 01:11:44 -08:00
popaprozac
87f15ced04 refactor 2025-02-22 00:34:29 -08:00
popaprozac
cc524d78e4 update example 2025-02-21 18:36:54 -08:00
popaprozac
f694ad223e service and minor refactor 2025-02-21 18:20:37 -08:00
popaprozac
274511c5cb update log message 2025-02-20 22:27:56 -08:00
popaprozac
32839bd0d1 initial notification impl 2025-02-20 14:03:38 -08:00
Fabio Massaioli
82ed0e6842 Merge branch 'v3-alpha' into v3-alpha-feature/service-api
# Conflicts:
#	docs/src/content/docs/changelog.mdx
2025-02-19 15:42:12 +01:00
GitHub Actions
d5a8f1e323 [skip ci] Publish @wailsio/runtime 3.0.0-alpha.56 2025-02-19 10:45:40 +00:00
Fabio Massaioli
29c0d15045
[V3] Fix docs change detection in npm CI (#4091)
Fix docs change detection in nom CI
2025-02-19 21:45:05 +11:00
Fabio Massaioli
e7c134de4e
[v3] Late service registration and error handling overhaul (#4066)
* Add service registration method

* Fix error handling and formatting in messageprocessor

* Add configurable error handling

* Improve error strings

* Fix service shutdown on macOS

* Add post shutdown hook

* Better fatal errors

* Add startup/shutdown sequence tests

* Improve debug messages

* Update JS runtime

* Update docs

* Update changelog

* Fix log message in clipboard message processor

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Remove panic in RegisterService

* Fix linux tests (hopefully)

* Fix error formatting everywhere

* Fix typo in windows webview

* Tidy example mods

* Set application name in tests

* Fix ubuntu test workflow

* Cleanup template test pipeline

* Fix dev build detection on Go 1.24

* Update template go.mod/sum to Go 1.24

* Remove redundant caching in template tests

* Final format string cleanup

* Fix wails3 tool references

* Fix legacy log calls

* Remove formatJS and simplify format strings

* Fix indirect import

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-19 09:27:41 +01:00
Ian VanSchooten
5059adc561
[v3] Remove ESLint from templates (#4059)
* Remove eslint dependencies from templates

* Add changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-02-16 16:02:25 +11:00
Falco Gerritsjans
0dc7b3c549
More control over menus (#4031)
* Add prepend and clear method to menus

* Document appending and clearing menus

* Add `Destroy()`
Add notes to documentation.

* Remove menu item from map when destroying

* Remove menu items from map when clearing

* Update v3/pkg/application/menu.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Minor updates

* Fix build error

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-16 12:08:08 +11:00
Marcus Crane
1bafc6f22f
[v3] Fix invisible footer for light mode users across default templates (#4056)
* Remove invisible footer styling

Signed-off-by: Marcus Crane <marcus@utf9k.net>

* Add changelog entry

Signed-off-by: Marcus Crane <marcus@utf9k.net>

---------

Signed-off-by: Marcus Crane <marcus@utf9k.net>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-02-16 11:57:52 +11:00
Lea Anthony
244f32268b
Fix Hidden Mac MenuItem.
Go 1.24
2025-02-16 11:10:19 +11:00
Ian VanSchooten
e75c10d567
[V3] Add docs for event.Sender (#4075)
* Add docs for event.Sender

* Update changelog
2025-02-15 07:17:47 +11:00
Ian VanSchooten
a49bfcc956
[v3] Update copyright date (#4037)
* Update copyright date to 2025

* Update changelog
2025-02-14 08:43:19 +11:00
Ian VanSchooten
69917c2f50
[V3] Add MacOS 15 "Sequoia" to OSInfo.Branding (#4065)
* Add MacOS 15 to names list

* Update changelog

* Listening to the rabbit
2025-02-14 08:40:29 +11:00
Fabio Massaioli
8f815e9974 Grammar fixes 2025-02-13 03:30:41 +01:00
Fabio Massaioli
fe38cd91c5 Update changelog 2025-02-13 03:11:22 +01:00
Fabio Massaioli
d314410d01 Update docs 2025-02-13 03:11:22 +01:00
Fabio Massaioli
2a6597eece Update example bindings 2025-02-13 03:11:22 +01:00
Fabio Massaioli
23412656de Update example 2025-02-13 03:11:22 +01:00
Fabio Massaioli
ae2936927d Standardise and enhance sqlite service 2025-02-13 03:11:22 +01:00
Fabio Massaioli
6edb2b0189 Standardise and enhance kvstore service 2025-02-13 03:11:22 +01:00
Fabio Massaioli
63f47bc9ed Standardise and enhance logger service 2025-02-13 03:11:21 +01:00
Fabio Massaioli
726084fa98 Standardise and enhance fileserver service 2025-02-13 03:11:21 +01:00
Lea Anthony
2c85b109ac
Update docs 2025-02-09 16:57:06 +11:00
Lea Anthony
2d6db0f27f
Update contributors 2025-02-09 11:48:48 +11:00
Fabio Massaioli
37673eb24d
[v3] Fix binding generator bugs and prepare for Go 1.24 (#4045)
* Rename predicates source file

* Overhaul and document type predicates

* Fix model collection logic for named types

* Fix map key type rendering

* Fix map creation code

* Fix rendering of structs that implement marshaler interfaces

* Fix type cycle detection to take type args into account

* Fix enum and typeparam field initialisation

* Improve unsupported type warnings

* Remove internal models file

* Deduplicate template code

* Accept generic aliases in static analyser

* Support new `encoding/json` flag `omitzero`

* Handle special cases when rendering generic aliases

* Update npm test dependencies

* Test class aliases and implicit private dependencies

* Test marshaler combinations

* Test map key types

* Remove bad map keys from unrelated tests

* Test service discovery through generic aliases

* Test generic aliases

* Test warning messages

* Disable go1.24 tests

* Update changelog

* Restore rendering of injected lines in index file

* Test directives

* Add wails:ignore directive

* Fix typo

* Move injections to the bottom of service files

* Handle errors from closing files

* Do not emit messages when services define only lifecycle methods

* Add internal directive for services and models

* Update changelog

* Fix error in service templates

* Test internal directive on services/models

* Fix error in index template

* Base testdata updates

* Testdata for class aliases and implicit private dependencies

* Testdata for marshaler combinations

* Testdata for map key types

* Testdata for bad map key fixes

* Add weakly typed enums aka alias constants

* Testdata for enum and typeparam field fixes

* Testdata for generic aliases

* Testdata for warning messages

* Testdata for directives

* Testdata for weakly typed enums

* Update binding example

* Update services example

* Remove go1.24 testdata

* Update cli doc

* Fix analyser tests

* Fix windows tests... hopefully

* go mod tidy on examples

* Update bindings guide

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-02-09 09:44:34 +11:00
Fabio Massaioli
d4096868e3
[v3] Fix and optimise assetserver (#4049)
* Fix and optimize content type sniffer

- Minimize copying and buffering
- Ensure it sniffs the full 512-bytes prefix

* Fix assorted warnings

* Cleanup error formatting

- Remove unnecessary formatting calls
- Fix invalid format strings
- Standardise logging calls

* Fix and optimize index fallback method

- Pass through non-404 responses correctly
- Do not buffer original response

* Test content sniffing and index fallback

* Update changelog

* Remove obsolete check

* Add safety checks in sniffer
2025-02-09 00:02:54 +11:00
Lea Anthony
d427e9d750
Add systray.SetTooltip 2025-02-08 14:01:22 +11:00
Lea Anthony
2db902ef82
Add menu option for Linux 2025-02-03 20:33:59 +11:00
Lea Anthony
36a1b71f93
The application menu is now macOS only.
Fixed a `Parameter incorrect` error in Windows.
Updated Window example for mica/acrylic/tabbed windows.
2025-02-03 20:08:31 +11:00
Lea Anthony
0ecfcee3bf
Fix IconPosition in Windows/Linux. Update docs. 2025-02-03 19:24:40 +11:00
Lea Anthony
b21bb16c08
Remove bad docs 2025-02-02 17:59:11 +11:00
Lea Anthony
4caf6d6e50
Add systray Show, Hide and Destroy 2025-02-02 17:54:24 +11:00
Lea Anthony
ee24099be8
Fixed event deadlock for macOS 2025-02-02 14:23:34 +11:00
GitHub Actions
6bbac4ad2a [skip ci] Publish @wailsio/runtime 3.0.0-alpha.55 2025-02-01 23:22:46 +00:00
Lea Anthony
b4c4cd8ae8
Fix mac/js events 2025-02-02 10:22:11 +11:00
Lea Anthony
c1251e9441
Add npm docs to file check paths 2025-02-01 07:51:18 +11:00
Lea Anthony
3eb3af8c8c
Only publish changes to npm 2025-02-01 07:37:34 +11:00
GitHub Actions
9ce782be68 [skip ci] Publish @wailsio/runtime 3.0.0-alpha.49 2025-01-31 20:13:00 +00:00
Lea Anthony
9bf63b1581
update pipeline to skip own commmit 2025-02-01 07:12:22 +11:00
GitHub Actions
c51688499c chore: Publish @wailsio/runtime 3.0.0-alpha.48 2025-01-31 20:07:24 +00:00
GitHub Actions
e3ed07997e chore: Publish @wailsio/runtime 3.0.0-alpha.47 2025-01-31 20:06:44 +00:00
GitHub Actions
c911e792dc chore: Publish @wailsio/runtime 3.0.0-alpha.46 2025-01-31 20:06:16 +00:00
GitHub Actions
95891b8ee1 chore: Publish @wailsio/runtime 3.0.0-alpha.45 2025-01-31 20:05:45 +00:00
GitHub Actions
20720ebdad chore: Publish @wailsio/runtime 3.0.0-alpha.44 2025-01-31 20:05:15 +00:00
GitHub Actions
cda9184d83 chore: Publish @wailsio/runtime 3.0.0-alpha.43 2025-01-31 20:04:41 +00:00
GitHub Actions
5ffdc204f6 chore: Publish @wailsio/runtime 3.0.0-alpha.42 2025-01-31 20:04:11 +00:00
Lea Anthony
0f566c5bc8
update pipeline to publish changes 2025-01-31 16:59:59 +11:00
Lea Anthony
5bd131c929
update pipeline 2025-01-31 16:44:27 +11:00
Lea Anthony
0c771e37f9
Auto build docs/types for runtime module 2025-01-31 16:34:39 +11:00
Lea Anthony
e31296fe5d
Revert "Vite 6"
This reverts commit 939e2daff0.
2025-01-31 07:27:16 +11:00
Lea Anthony
282b420faf
Fix windows paths -> forward slashes 2025-01-31 07:14:18 +11:00
Lea Anthony
b3e81f5cbb
BREAKING CHANGE: wml attributes are now prefixed with data- 2025-01-28 07:37:17 +11:00
Lea Anthony
939e2daff0
Vite 6 2025-01-27 11:05:29 +11:00
Lea Anthony
db61f9f263
Event cancellation for standard listeners.
Major doc updates.
Runtime build tidy up.
Removed redundant default event mappings.
2025-01-27 09:29:22 +11:00
Lea Anthony
b4dff607e7
Better context menu demo text 2025-01-25 09:23:12 +11:00
Lea Anthony
46bb4e8414
*BREAKING CHANGE* move Path and Paths methods into application package. 2025-01-24 08:09:29 +11:00
Lea Anthony
631c8a1cc8
New ContextMenu API + example (#4013)
* New ContextMenu API + example

* Remove redundant code

* ContextMenuData now returns a string.
New Menu guide.

* Update readme

* Update v3/pkg/application/context.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Add new menubar option

* Fix docs

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-23 22:10:23 +11:00
Lea Anthony
31487b5a0c
Fix bad merge 2025-01-23 22:03:14 +11:00
Fabio Massaioli
3f825823d5
[v3] Pass build flags to binding generator (#4023)
* Pass build flags to binding generator

* Update changelog

* Track variable dependencies using task labels

* Track JS/TS sources for binding generator

The `/wails:include` directive allows for the inclusion of additional JS/TS files in the generated bindings.

* Pass production var to frontend task

* Track binding generator output as source

* Fix generates pattern for frontend build task

* Fix typo in function `term.Warningf`

* Use facilities from `internal/term` in bindings command instead of `pterm`

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-01-23 10:58:35 +00:00
Fabio Massaioli
16ce1d3448
[v3] Service API cleanup and comments (#4024)
* Gather and document service API

* Update changelog

* Add NewServiceWithOptions

* Revert static analyser change

* Remove infinite loop in NewService[WithOptions]

* Fix compiler warning in bindings command

* Add test for NewServiceWithOptions

* Update changelog

* Fix service example

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-01-23 10:53:48 +00:00
Lea Anthony
547e30f025
Default panic handler should fatal. Update docs and example. 2025-01-21 06:44:28 +11:00
Lea Anthony
b7ab650f36
Skip FileExplorer tests in CI 2025-01-20 20:59:17 +11:00
Lea Anthony
5ccc810999
Fix tests 2025-01-20 19:56:03 +11:00
Lea Anthony
8ba623f5fe
Fix build issue 2025-01-17 21:21:32 +11:00
Lea Anthony
be8159d410
# Conflicts:
#	docs/src/content/docs/changelog.mdx
#	v3/pkg/application/menuitem.go
2025-01-17 21:19:23 +11:00
Fabio Massaioli
f01b4b9a21
[v3] Fix binding generator bugs (#4001)
* Add some clarifying comments

* Remove special handling of window parameters

* Improve internal method exclusion

* Add test for internal method exclusion

* Remove useless blank field from app options

This is a leftover from an older version of the static analyser. It should have been removed long ago.

* Remove redundant godebug setting

gotypesalias=1 is the default starting with go1.23

* Use new range for syntax to simplify code

* Remove generator dependency on github.com/samber/lo

* Ensure generator testing tasks do not use the test cache

* Rename cyclic types test

* Test for cyclic imports

* Fix import cycle between model files

* Sort class aliases after their aliased class

* Test class aliases

* Fix length of default value for array types

* Test array initialization

* Add changelog

* Update changelog

* Fix contrived marking technique in model sorting algorithm

* Update binding example

* Update test data

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-01-17 18:56:07 +11:00
Lea Anthony
e668c81806
Improved panic handling. Added guide. 2025-01-16 22:08:18 +11:00
Lea Anthony
7387e62a95
Update pipeline to use Go 1.23 2025-01-16 20:26:24 +11:00
Lea Anthony
0e02b07ba3
Fix typos 2025-01-16 20:25:07 +11:00
Lea Anthony
f6ebd6b3de
Breaking Change: Service method names 2025-01-16 07:47:23 +11:00
Lea Anthony
51e3a6168c
Fix nil menu issue when calling RegisterContextMenu 2025-01-15 19:43:10 +11:00
Lea Anthony
33ac88dc2a
Add window to context when calling a service method. Add window-call example to demonstrate how to know which window is calling a service. Fix Window ID skip issue. 2025-01-15 19:32:15 +11:00
Lea Anthony
4c59709653
Go 1.23.4 2025-01-15 19:00:26 +11:00
Lea Anthony
9aca915f5c
Add diagnostics section to wails doctor. 2025-01-15 17:46:59 +11:00
Akshay Kalose
9a54f5832d
[v3] Update Templates (macOS Target Version and Linux aarch64 AppImage) (#3981)
* [v3] Update Templates (macOS Target Version and Linux aarch64 AppImage)

* Update changelog.mdx

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-01-15 08:01:24 +11:00
Lea Anthony
7e989b973a
Update changelog.mdx 2025-01-15 07:58:01 +11:00
Lea Anthony
3f78a3a8ce
Fix edit menus on windows and linux 2025-01-15 07:56:00 +11:00
Lea Anthony
c186917c34
v3.0.0-alpha.9 2025-01-13 21:30:16 +11:00
Lea Anthony
8b64705dd6
Frontend builds now use vite environment "development" or "production" depending on build type
Fix windows webview2 bootstrapper path issue
2025-01-13 18:24:21 +11:00
Lea Anthony
10002d892d
Fix v3 PR template 2025-01-12 20:50:21 +11:00
Lea Anthony
aa97009c35
Fix screens infinite loop when retrieving monitor name 2025-01-12 20:38:49 +11:00
Lea Anthony
760b58726a
Fix mac window show/hide event mapping. 2025-01-12 20:30:55 +11:00
Lea Anthony
9569d487a2
Ensure some menuitem methods are run on the main thread. 2025-01-12 15:05:39 +11:00
Mario
20e050b602
[v3] app quit on message (#3990)
* app quit on message

* update changelog
2025-01-11 14:35:32 +11:00
Lea Anthony
c6f9ebe22d
Add -clean option for bindings generation. 2025-01-11 14:31:57 +11:00
Atterpac
e0c5de6e10
[V3/Linux] Fix Min/Max window options (#3979)
fix min/max options for linux

changelog.md

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-01-11 10:32:27 +11:00
5aaee9
a5c32a1504
[v3] allow build with garble (#3192)
* feat: allow build with garble

* docs: update

* Updated docs

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-01-10 16:36:24 +11:00
Lea Anthony
1f9f8dae66
Add -buildvcs=false for dev mode 2025-01-10 16:33:26 +11:00
Lea Anthony
88f262b9c2
Make dev version string semantic version compatible. 2025-01-10 16:05:05 +11:00
Lea Anthony
77b8b89130
Remove old template generation files 2025-01-10 16:04:31 +11:00
Lea Anthony
0e239c9771
Add -buildvcs=false flag to Taskfiles 2025-01-10 16:04:05 +11:00
Lea Anthony
b6b8c18ef5
Fix implicit any warning in bindings 2025-01-05 13:43:09 +11:00
Chris Simmons
98c4089d15
[v3 alpha] docs: add note that internal service methods are not included in generated bindings (#3982)
add note that internal service methods are not bound
2025-01-05 12:35:14 +11:00
Lea Anthony
91a99299b1
Fix version string in debug build 2025-01-02 20:47:37 +11:00
Lea Anthony
d3d11593bc
Add update cli
Terminal output refactor
2025-01-02 16:24:37 +11:00
Lea Anthony
78bde14388
Add releasenotes command 2025-01-02 11:38:48 +11:00
Lea Anthony
60d13880d8
Fix internal template generation 2025-01-01 21:22:53 +11:00
Lea Anthony
59a8ecc5b2
Support template generation 2025-01-01 20:58:49 +11:00
Lea Anthony
773dca77d4
Single Instance feature.
Fix missing events on darwin.
2024-12-30 21:02:43 +11:00
Lea Anthony
7cee957161
Fix pipeline tests 2024-12-28 20:45:45 +11:00
Lea Anthony
99b0adfe96
Fix pipeline tests 2024-12-28 20:38:26 +11:00
Lea Anthony
97cc4a4b2c
Make common taskfile generate TS bindings when using a Typescript template. 2024-12-28 19:51:53 +11:00
Lea Anthony
e794f5d6d8
Merge branch 'v3-alpha-bugfix/event-emmission' into v3-alpha
# Conflicts:
#	v3/internal/runtime/desktop/@wailsio/runtime/package.json
2024-12-28 13:24:44 +11:00
Lea Anthony
8b53aa39ff
Update changelog.mdx 2024-12-28 13:23:58 +11:00
Lea Anthony
86f5049d29
Improve move & resize debouncer.
Fix double event.
Fix shutdown issue with webview2.
2024-12-27 12:05:11 +11:00
Lea Anthony
11cdbd8b83
Add in resize debounce as an option 2024-12-27 11:20:32 +11:00
Lea Anthony
0d4cb4698f
Improve frameless example 2024-12-27 09:37:55 +11:00
Lea Anthony
acd9241819
Better logo in systray-menu example 2024-12-27 09:23:39 +11:00
Lea Anthony
1276ef178b
Improved "HiddenOnTaskbar" implementation. 2024-12-27 09:14:43 +11:00
Lea Anthony
27480bc6cb
Reduce flicker. 2024-12-27 09:09:00 +11:00
Atterpac
6bc6de6d37
@wailsio version bump (#3966)
changelog.mdx
2024-12-24 10:27:13 +11:00
Lea Anthony
a90764891f
Update systray-custom to show keep-alive after window kill 2024-12-23 20:55:29 +11:00
Lea Anthony
65f95b0380
Removed OnShouldClose: Create single way of handling conditional and unconditional close. 2024-12-23 08:23:07 +11:00
Lea Anthony
8e98d6dd19
Handle events at a lower level 2024-12-22 10:02:16 +11:00
Lea Anthony
2ff4e6a080
Small improvements around mainthread switching 2024-12-21 12:13:48 +11:00
Lea Anthony
dc598ecf24
More url links in terminal 2024-12-20 18:38:48 +11:00
Anshuman
f61316c18d
Added hyperlink for sponsor (#3958)
* Added hyperlink for sponsor

* Updated the changelog

* removed whitespace
2024-12-20 18:17:42 +11:00
Lea Anthony
454d170dfb
[mac] setPosition - adjust based on scale factor 2024-12-20 18:12:54 +11:00
Lea Anthony
01899adef9
Add bootstrapper back in 2024-12-18 19:51:22 +11:00
Lea Anthony
95a5b926fd
[windows] Improve minimise and restore window drawing 2024-12-18 07:45:33 +11:00
Lea Anthony
bcc3ac296d
Updated tutorial. Fixed sidebar 2024-12-17 06:21:51 +11:00
Lea Anthony
37f9f19d6f
Fix tutorial. Remove animation. 2024-12-17 06:00:08 +11:00
Lea Anthony
19f60798b3
Provide a way to initialise the runtime if not using any runtime features. 2024-12-16 21:10:56 +11:00
Lea Anthony
4dd920df0d
Remove link validator 2024-12-16 20:03:05 +11:00
Lea Anthony
7aa6abfefe
Documentation updates.
New `-git` flag for `wails3 init`.
New `wails3 generate webview2bootstrapper` command.
2024-12-16 20:00:56 +11:00
Lea Anthony
e75f9c9c7f
Fix window shutdown issue.
Handle error serving capabilities.
2024-12-15 09:02:43 +11:00
Lea Anthony
7aa7534852
Fix build issue 2024-12-15 08:32:43 +11:00
Lea Anthony
629374698d
Update changelog 2024-12-14 17:59:37 +11:00
Lea Anthony
957f759197
Improve window destroying on Mac 2024-12-14 17:56:16 +11:00
Lea Anthony
6e84337898
Fix dialog directory chooser example.
Remove debug output.
2024-12-14 15:11:40 +11:00
Lea Anthony
a0b2ab7c0a
Fix default index.html serving.
Support multi-language default.
Remove default page from production builds.
Improve defaultindex.html.
2024-12-14 11:10:07 +11:00
Lea Anthony
beacf06c7d
Fix macOS systray DPI scaling and offset.
Added new systray examples.
2024-12-13 23:46:27 +11:00
Lea Anthony
a0ff53b629
Docs change 2024-12-13 22:00:25 +11:00
Rick Calixte
d03f4ce54a
OpenFileManager for opening with the native file manager and optional file selection support (#3937)
OpenFileManager for opening with the native file manager and optional
file selection support

Closes #3197

Co-authored-by: Krzysztofz01 <krzysztof.zon2001@gmail.com>
2024-12-13 21:37:18 +11:00
Atterpac
8599d7befa
Fix Sveltekit template CSS refrence (#3945)
changelog.md
2024-12-13 20:36:18 +11:00
Stavros Kois
6be3295205
Docs: Add community page(s) (#3941)
* docs: fix tip

* update packages

* add showase

* add 3 showcases from v2

* mdx -> md

* add links page

* add templates page with a caution

* add a tip

* move desc up

* use X instead of twitter

* fix link

* Add clave

* add how to section
2024-12-10 07:53:36 +11:00
Lea Anthony
dcb7a7fdfc
Taskfile / build assets refactor. 2024-12-08 19:27:46 +11:00
Lea Anthony
3600f5030a
Setup starlight workflow 2024-12-08 12:39:41 +11:00
Lea Anthony
8d62a60d60
Setup starlight workflow 2024-12-08 12:37:32 +11:00
Lea Anthony
fef7b0827b
Setup starlight workflow 2024-12-08 12:37:13 +11:00
Lea Anthony
db06fcd087
Update v3-docs.yml 2024-12-08 12:31:31 +11:00
Lea Anthony
3d4f61419a
Setup starlight workflow 2024-12-08 12:28:50 +11:00
Stavros Kois
b6c8d9a90a
[v3] Add starlight website (#3917)
* init docs

* add few categories

* add more

* update home

* add blog

* update favicon

* fix few links and

* untouch

* untouch more

* add some icons

* add icons

* move ggetting started at the top and collapse the rest

* actually collapse

* format

* remove includes

* more format

* remove includes

* move assets

* add i18n

* fix i18n

* formatting

* order

* Prevent sidebar from making the page shake during load

* Prevent sidebar from making the page shake during load

* organize docs

* fix link

* expand a bit

* add credits page

* update all contributors file

* remove underlines

* add alternative

* use html

* lets get the first success build

* add latest entry

* remove example file

* fix examples

* more fixes

* fix grammar

* grammar

* remove dupes

* fix link

* grammar

* typo

* typo

* typo

* Logo update. Minor changes.

* update changelog

* update changelog

* rabbit is right

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-12-08 12:09:13 +11:00
Lea Anthony
2e4fce7c67
OpenDirectory for opening native file manager at the given dir 2024-12-07 21:31:13 +11:00
Lea Anthony
296b9debd3
Support fullscreen for frameless windows. 2024-12-07 21:14:38 +11:00
Lea Anthony
2a6e3da30a
Ensure key callbacks in window run() are called on the main thread 2024-12-07 20:54:22 +11:00
Lea Anthony
5445aebe94
Ensure windowDidBecomeKey callback is running on main thread 2024-12-07 20:45:08 +11:00
Lea Anthony
e0d788bea9
v3.0.0-alpha.8.3 2024-12-07 10:13:58 +11:00
Lea Anthony
65e7437eed
v3.0.0-alpha.8.2 2024-12-07 10:11:41 +11:00
Lea Anthony
797481410c
Fix typo 2024-12-07 09:26:24 +11:00
Lea Anthony
424e94542c
v3.0.0-alpha.8.1 2024-12-07 09:24:21 +11:00
Lea Anthony
1707cafbbc
v3.0.0-alpha.8 2024-12-06 22:23:45 +11:00
Lea Anthony
7cbde83f38
[windows] Fix radio group menu items 2024-12-06 22:00:43 +11:00
Lea Anthony
459b5e1036
Added EnabledFeatures and DisabledFeatures options 2024-12-06 17:17:54 +11:00
Lea Anthony
db00ae8eda
Better mac GPU/Memory support for doctor 2024-12-06 17:09:53 +11:00
Atterpac
830f70258e
Merge pull request #3925 from michael-freling/fix-v3
[v3 alpha] Fix deadlock of linux dialog for multiple selections
2024-12-03 13:01:39 -07:00
Michael
7b4befb0b1 [v3-alpha] Update a changelog 2024-12-03 05:54:56 -08:00
Michael
0466bc6936 [v3 alpha] Fix deadlock of linux dialog for multiple selections 2024-12-03 05:54:17 -08:00
Lea Anthony
f2040797d7
[windows] Use application icon as default systray icon if available. 2024-12-03 21:12:01 +11:00
Anshuman
b37cdf5ba9
[v3] fix: Add cross-platform cleanup for .syso files during Windows build (#3924)
* fix: Add cross-platform cleanup for .syso files during Windows build

* Updated changelog
2024-12-02 20:39:00 +11:00
Lea Anthony
8444ccf6f2
Update go-webview2 to v1.0.18. 2024-12-02 07:46:45 +11:00
Lea Anthony
1c34c252cc
Remove resize debounce setting for windows.
Optimise resizing performance on windows automatically.
2024-12-01 09:52:06 +11:00
Atterpac
0ebb21f0fb
[V3] Rework service.OnStartup to close application on error (#3920)
* rework service.OnStartup to close applicatoin on error

CHANGELOG.md

fix index out of bounds potential

* os.Exit -> runtime.Goexit

* Revert to os.Exit

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-30 13:36:29 +11:00
Atterpac
9173537ce5
[V3-Linux] Support for deb,rpm,arch linux packager packaging (#3909)
* Support for linux deb,rpm,arch linux packager packaging

* remove optional tasks from linux:package task

CHANGELOG.md

* Update Taskfile.linux.yml

* Integrated nfpm into CLI.
Fixed task update.

* package tool fixes and add bundle name field

empty name guard

* add linux depdencies

* Add some docs

* Fixed tests. Updated task to latest.

* Update v3/internal/commands/tool_package.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Remove doctor references to nfpm

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-11-30 13:31:56 +11:00
Lea Anthony
43659cc5b3
Improved warning support. 2024-11-30 12:02:27 +11:00
Atterpac
d27e75c57f
[V3-Linux] Systray OnClick on initial icon click (#3907)
Support linux systrays first click to open

- Convert event handling to switch statement for better readability
- Fix menu event handlers to properly trigger open/close callbacks
- Update click behavior to use doubleClickHandler for Activate

CHANGELOG.md
2024-11-24 07:46:14 +11:00
Anshuman
abcc37f9a1
Add darwin universal build and package (#3902)
* Added Support for darwin universal builds and packages

* Fix universal task

* Added the missing Taskfile.tmpl.yml file
2024-11-23 23:15:10 +11:00
Atterpac
76e7654242
Fix AMD64 appimage generation (#3898)
changelog

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-22 20:45:27 +11:00
Anshuman
c54fbdb075
Fix build assets update (#3901)
* fix: build assets update from config

* Updated changelog
2024-11-22 20:42:19 +11:00
Lea Anthony
eccfd345b5
Fix TS templates 2024-11-20 19:49:12 +11:00
Lea Anthony
d6866f6317
V3 alpha - calling window id and name (#3888)
* Add the calling window name and ID to the context if available. Update the documentation.

* Update changelog.md
2024-11-20 05:42:16 +11:00
Lea Anthony
a98bf32b24
Fix syso naming issue 2024-11-18 20:43:03 +11:00
Lea Anthony
5f1b1efc66 Better shutdown for macOS 2024-11-17 21:37:59 +11:00
Atterpac
4f9010b024
[V3-Linux] Fix linux compile and systray OnClicks (#3886)
* fix linux compile

* fix systray OnClick and OnRightClick

* changelog.md

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-17 21:02:58 +11:00
Lea Anthony
d59ad46a9e
Add bindings section 2024-11-17 14:07:36 +11:00
Atterpac
2417251f02
defualt to embed all:frontend/dist (#3887)
changelog.md
2024-11-17 13:27:17 +11:00
Lea Anthony
99d538ea97
V3 alpha feature/3659 support webview options (#3766)
* [windows] Add GeneralAutofillEnabled and PasswordAutosaveEnabled options

* Use latest go-webview2

* Updates

* Fix changelog
2024-11-16 12:30:33 +11:00
Kodflow
3b7c870a53
[V3 Linux] aarch64 compilation (#3854)
* [V3 Linux] Add multi arch package for imageapp

base

quick refacto

* update changelog

* update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-16 12:20:32 +11:00
Anshuman
331097f269
[v3] Added AppDataDirectory path (#3823)
* Added appData

* Updated changelog

* Updated doc and added error handling and fallbacks

* Updated doc

* Expose XDG methods

* Refactor Path method. Add Paths method

* Fix changelog

---------

Co-authored-by: Anshuman <anshuman@instasafe.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-16 12:00:45 +11:00
northes
0b1ef79a8e
[v3] bugfix: update version to support application.ServiceOptions (#3836)
* bugfix: update version to support application.ServiceOptions

* [v3] docs: update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-16 11:07:51 +11:00
Lea Anthony
0f0f9a0262
Update PR template 2024-11-16 10:45:14 +11:00
Lea Anthony
3e00b390c1
V3 alpha feature/start window position (#3885)
* New InitialPosition setting

* Fix mac inverted Y issue.
Fix mac centering issue.

* Change position text in example

* Update changelog.md
2024-11-16 10:10:40 +11:00
Lea Anthony
b4a61e11fa
Add devmode config to config.yml.
Remove devmode.config.yaml.
Update Watcher command.
Update templates.
2024-11-09 09:35:13 +11:00
Lea Anthony
35a680632e
V3 alpha feature/file association port (#3873)
* Update nsis template

* Move app data into config.yml

* mac support

* Add FileAssociations application config option
Support `ApplicationOpenedWithFile` event on Windows
Add docs

* Add FileAssociations application config option
Support `ApplicationOpenedWithFile` event on Windows
Add docs
Add test project

* Update example & docs.
Fix show window bug.

* Fix window show event bug

* Update changelog
2024-11-09 09:30:53 +11:00
Lea Anthony
d18b7bc4b8
V3 alpha feature/file association port (#3873)
* Update nsis template

* Move app data into config.yml

* mac support

* Add FileAssociations application config option
Support `ApplicationOpenedWithFile` event on Windows
Add docs

* Add FileAssociations application config option
Support `ApplicationOpenedWithFile` event on Windows
Add docs
Add test project

* Update example & docs.
Fix show window bug.

* Fix window show event bug

* Update changelog
2024-11-09 08:58:20 +11:00
Atterpac
1806aa0d7c
[V3/Docs] Add Events documentation (#3867)
events docs

fix function

fix nav

changelog.md

fix broken link

appease the rabbit

spell check and cleanup
2024-11-05 08:17:45 +11:00
Lea Anthony
8b105fc9c3
Improve runtime to detect browser 2024-11-04 19:44:54 +11:00
Lea Anthony
f078ee9f9a
Support wails3 generate runtime 2024-11-03 17:28:32 +11:00
Windom
e4cfae2885
[v3] Fix service name determination (#3827)
Should use service instance, not Service wrapper struct.
2024-11-01 07:00:35 +11:00
Lea Anthony
bd0c366b2f Fix service generation text 2024-10-30 22:13:41 +11:00
Omar Ferro
f9d80323dd
[v3 alpha test] HTML Drag and Drop API test (#3856)
* [v3 example] HTML dnd API test

* Update v3/examples/html-dnd-api/main.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: add entry to changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-10-29 20:15:36 +11:00
Lea Anthony
308304b75e
Use docker for mkdocs serve 2024-10-24 11:26:20 +11:00
Lea Anthony
1cb7a33442
Support updating the build assets 2024-10-24 10:07:11 +11:00
John McCabe
4325b06ac4
[v3 Darwin] Fix NewEditMenu, remove duplicate PasteAndMatchStyle item (#3839)
* [V3 Darwin] Fix NewEditMenu, remove duplicate PasteAndMatchStyle item

* [chore] Add darwin fix for NewEditMenu dupe role to changelog

- PR #3839

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-10-21 08:35:34 +11:00
Lea Anthony
4591fb9b95 Make template descriptions consistent 2024-10-20 13:29:38 +11:00
Atterpac
6870e916bb
[V3 Templates] Add Sveltekit and Sveltekit TS templates (#3829)
* node runtime parity

* Add sveltekit templates

changelog

update svelte config

* Update v3/internal/templates/sveltekit-ts/template.json

* Update v3/internal/templates/sveltekit/template.json

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-10-20 13:26:51 +11:00
Lea Anthony
b27aed2497
[mac] fix always on top during window creation (#3841)
* [mac] fix always on top during window creation

* Update changelog.md
2024-10-20 13:14:26 +11:00
Atterpac
94e8f8b8d7
[V3 Runtime] Ensure JS package has parity with various node versions (#3821)
node runtime parity
2024-10-13 18:06:06 +11:00
Atterpac
fc6f6bde1d
[V3] setURL bug fix (#3533)
setURL bug fix

s

s

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-10-10 19:45:07 +11:00
Atterpac
f16d1be955
[V3 Linux] Fix Keybind remit (#3797)
debounce linux keypress events  remits if held past a certain value
2024-10-02 08:21:14 +10:00
Etesam
77b8132591
Updated Id type to ID for Screen (#3779)
* 🏷️ Updated `Id` type to `ID` for `Screen`

* 📝 Updated changelog
2024-09-27 15:26:33 +10:00
Lea Anthony
df091f02ef [mac] fix rogue brace 2024-09-23 20:36:58 +10:00
Mohamed Gharib
efe0c8d534
[v3-Windows] New DIP system for Enhanced High DPI Monitor Support (#3665)
* [v3-Windows] New DIP system for Enhanced High DPI Monitor Support

* Update changelog

* Remove asset middleware

* Remove SetThreadDpiAwarenessContext()

* Fix macOS build.

* Fill missing screens fields (linux, darwin)

* Skip DPI transformation on unsupported platforms

* Simplify distanceFromRectSquared()

* Update v3/pkg/application/screenmanager.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-09-22 08:38:30 +10:00
Lea Anthony
d5a6d7719c
Update to go-webview2 v1.0.16 2024-09-22 08:12:02 +10:00
Lea Anthony
5367d056e2
Taskfile Refactor (#3748)
* Refactor taskfile

* Fix escaping

* Fix event error

* Fix dev mode

* Fixes for Windows

* Add docs. Improve docs build system

* Update v3/internal/commands/build_assets/Taskfile.darwin.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update v3/internal/commands/build_assets/Taskfile.linux.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Improve docs

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-09-21 20:49:25 +10:00
Lea Anthony
860d02d1fe
Improve pipelines 2024-09-18 21:48:26 +10:00
Lea Anthony
9bb5c4f64a
v3.0.0-alpha.7 2024-09-18 21:45:56 +10:00
Lea Anthony
cfdd612c8d
Fix linux build 2024-09-18 21:43:22 +10:00
Lea Anthony
40076c6246
Fix linux build 2024-09-18 06:23:53 +10:00
Lea Anthony
5670a4d7e7
Fix build 2024-09-18 06:07:59 +10:00
Lea Anthony
4386f5fcb2
# Conflicts:
#	mkdocs-website/docs/en/changelog.md
2024-09-18 05:55:49 +10:00
Lea O'Anthony
2c55110776
Improved menus.
Fixed warning on windows quit.
2024-09-17 21:19:00 +10:00
stendler
56494d8d1a
[v3] actions improvements & run actions on more branches and in forks (#3747)
* [v3] actions: run in forks and also build v3/* or v3-* branches

* [v3] actions: don't fail fast in test build actions

* [v3] actions: update actions to node20

* [v3] actions: specify cache dependency path for setup-go

to get rid of warnings
2024-09-15 07:14:22 +10:00
Etesam
b30cea0de0
[V3] fix drag n drop example not running (#3742)
* Replaced customEventProcessor with EmitEvent

* 📝 Added bug fix entry to changelog
2024-09-13 05:41:06 +10:00
Lea O'Anthony
6787ce9c40
Significant updates to mac menu items. More roles. More fixes to come. 2024-09-12 20:51:07 +10:00
Lea Anthony
ef8c886b10
Ignore internal service methods when binding (#3720)
* Ignore internal service methods when binding

* Updated changelog.md
2024-09-09 08:36:19 +10:00
Lea Anthony
cc70b98eed Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha 2024-09-08 20:25:10 +10:00
Lea Anthony
1c574e79e8 [mac] events updates 2024-09-08 20:25:00 +10:00
Gabriel Lima
5481f3a684
[linux] fix: update for new events syntax (#3734)
Changed uses of deprecated `.On` to the current standard.
2024-09-08 20:22:42 +10:00
Lea Anthony
7fafee8a6c [mac] events updates 2024-09-08 20:14:45 +10:00
Lea Anthony
5cde12b42a
Refactored Events (#3731)
Experimental rename
2024-09-07 16:39:02 +10:00
Atterpac
5004aac259
[V3] Refactor linux ignore mouse events (#3721)
refactor linux ignore mouse events

changelog.md
2024-09-06 08:10:05 +10:00
DeltaLaboratory
2460b570fe
retry when shellnotifyicon fails (#3710)
* add retry mechanism for create shell notification icon

* add retry mechanism for create shell notification icon

* adjust delay and attempts

* added changelog

* Use application fatal handler instead of panic

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-09-02 19:33:17 +10:00
Atterpac
e316cd0719
[V3] Plugins implemenations (#3570)
* plugin handler and lifecycle

* rebase

* remove reflect

s

* remove Config and NewPlugin from plugin template

* Remove plugin manager, generation of plugin interface

* implement http handlers for services

remove log

trim path

prefix wails/services

* update plugine example

* Misc updates

* Ported plugins to services, rewritten example

* Added fileserver

* Update OnStartup and use a context for the application

* Rename PathPrefix to Route. Create docs.

* Use service config copy. Add Name to Service Options. Improve service generation.

* Use service config copy. Add Name to Service Options. Improve service generation. Update README

* Remove rogue db

* Update changelog.md

---------

Co-authored-by: Lea O'Anthony <lea.anthony@gmail.com>
2024-09-01 17:26:22 +10:00
Lea O'Anthony
60c9d1a070
More syscall fixes 2024-08-29 06:49:17 +10:00
Lea O'Anthony
46d7f399ff
windows dialog fixes 2024-08-28 07:07:16 +10:00
stendler
88c9017fdc
[v3,linux] fix: enable to run natively in wayland (#3614)
fix: enable to run natively in wayland

Incorporated from this v2 change:
https://github.com/wailsapp/wails/pull/1811
2024-08-25 21:39:22 +10:00
Windom
46dbbb3b84
[v3] Make Windows window class configurable (#3682) 2024-08-20 18:20:44 +10:00
Oleg Gulevskyy
b756bce67f
Set MacOS window levels (NSWindow) (#3674)
* set nswindow levels via mac options

* add changelog description

* update changelog to conform with others
2024-08-20 18:06:45 +10:00
bruxaodev
1ed6966cbe
Fix: Ensure Window Frame is Applied on First Call in setFrameless Function (#3691)
* fix: force update window frame

* Update changelog.md
2024-08-20 18:01:31 +10:00
bruxaodev
fbcce0b20c
[windows] Add support for click-through overlay window (#3667)
* [windows] Add support for click-through overlay window

* update changelog

* setIgnoreMouseEvents - exemple

* fix - remove unused import

* Add macOS+Linux support. Update example.

* Fix SetIgnoreMouseEvents before window created.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-08-18 20:50:22 +10:00
Lea O'Anthony
96b97b25bf
Fix syso generation bug 2024-08-16 21:09:40 +10:00
Atterpac
cfab21bc81
fix syso icon generation (#3675)
update changelog.md
2024-08-10 07:26:37 +10:00
Lea O'Anthony
d405bd48f0
Fix tests for Windows 2024-08-05 05:22:00 +10:00
Lea Anthony
1cba1416a1 Fix tests 2024-08-04 21:28:15 +10:00
Lea Anthony
cd3b561623 Fix errors with raising errors! 2024-08-04 19:19:40 +10:00
Lea O'Anthony
170039c1d1
Update docs 2024-07-31 21:04:07 +10:00
Lea O'Anthony
38f68f77a0
Doc test 2024-07-31 19:37:56 +10:00
Lea O'Anthony
84aa7a879c
Update doc deps 2024-07-31 08:53:47 +10:00
Lea O'Anthony
87f51ddbda
Improve installation and what's new guides 2024-07-31 08:41:15 +10:00
Lea O'Anthony
011c9e66fb
Update installation guide 2024-07-31 08:06:18 +10:00
Lea O'Anthony
5a61e1007f
Fix module dependencies 2024-07-30 22:10:44 +10:00
Lea O'Anthony
c88f02c5a5
Add build info tool 2024-07-30 22:03:01 +10:00
Lea Anthony
212f5c7270
Clean up footer 2024-07-30 07:57:25 +10:00
Atterpac
7941f00c35
https flag for dev mode (#3603) 2024-07-29 20:46:44 +10:00
Lea Anthony
ed450c1268
Add code rabbit for alpha 2024-07-29 20:46:15 +10:00
Atterpac
76da9e55c9
Add fatalHandler() stubs to fix non-windows builds (#3642) 2024-07-29 19:32:15 +10:00
Lea Anthony
086c7ae32d
Add error handler. Use latest go-webview2. 2024-07-28 20:49:08 +10:00
Lea Anthony
d61bb9c79b
[Windows] Handle menu accelerators 2024-07-27 16:04:26 +10:00
Miklos Gabor
6c7cd651da Fix systemTray.setIcon crashing on Linux (#3636) 2024-07-25 12:34:10 -05:00
Lea Anthony
f94ecaba84
Fix random crash on linux 2024-07-20 08:40:52 +10:00
Atterpac
f0cec1cf37
[V3-Linux] fix resize and update @wailsio runtime (#3617) 2024-07-16 15:44:46 -05:00
Lea Anthony
d7e103de59
Fix nsis install 2024-07-16 06:25:05 +10:00
Lea Anthony
65b983dcb6
Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha 2024-07-16 06:00:50 +10:00
Mohamed Gharib
d5e289880f
[v3] Rename AbsolutePosition() to Position() (#3611) 2024-07-15 19:27:21 +10:00
Mohamed Gharib
e51a481219
[v3] Restore max size example (#3612) 2024-07-15 19:24:51 +10:00
Atterpac
62b795d472
fix resize messaging (#3606)
changelog.md
2024-07-14 16:47:18 +10:00
Lea Anthony
8a7057b3b0
Merge branch 'refs/heads/master' into v3-alpha
# Conflicts:
#	.github/workflows/build-and-test.yml
#	.github/workflows/pr.yml
#	v2/go.mod
#	website/src/pages/changelog.mdx
2024-07-10 09:17:59 +10:00
Lea Anthony
33a0c9e634
Fixed icon warning on Windows 2024-07-03 07:51:10 +10:00
Atterpac
5fcebd0274
fix windows file dialog panic when directory doesnt exist (#3582) 2024-07-02 18:49:19 +10:00
DeltaLaboratory
749c433ca6
feat: disable spinner in ci or non terminal (#3574)
* added nospinner flag to disable spinner in ci environment

Signed-off-by: delta <delta@deltalab.dev>

* deduplicated result message

Signed-off-by: delta <delta@deltalab.dev>

* removed flag and added terminal check

Signed-off-by: delta <delta@deltalab.dev>

* added changelog entry

Signed-off-by: delta <delta@deltalab.dev>

---------

Signed-off-by: delta <delta@deltalab.dev>
2024-07-02 18:35:39 +10:00
Travis McLane
cfe2424f4d
WindowDidMove / WindowDidResize events for Linux and Windows
* [linux] emit system specific event for theme change

Code was incorrectly emitting the `events.Common.ThemeChanged` event
instead of the OS Specific `events.Linux.SystemThemeChanged` event.
It is the reponsibility of the code in events_common_linux.go to map
it to the common variety.

* [linux] implement WindowDidMove

* [linux] implement debounce for WindowDidMove

* [example] listen for events.Common.WindowDidMove

* [windows] move WindowDidMove mapper outside of DnD guard

* WindowDidResize implementation

* windows: WindowDidResize

* chore: changelog update

* events.Common.WindowDidMove and events.Common.WindowDidResize
2024-06-30 16:11:45 -05:00
Lea Anthony
ed88987308
Added a new menu item to create window that listens to movement event. 2024-06-28 21:25:13 +10:00
Lea Anthony
86e43c92b3
[Windows] Check systray menu before destroying it 2024-06-26 21:05:46 +10:00
Lea Anthony
ae3b92f1ef
Add README.md to templates 2024-06-24 21:48:58 +10:00
Lea Anthony
932f1e9161
Remove unused command 2024-06-24 21:28:26 +10:00
Lea Anthony
b0ac644e9b
Update docs text 2024-06-24 21:27:30 +10:00
Lea Anthony
25cccc32db
Add docs and sponsor subcommands 2024-06-24 20:50:17 +10:00
Lea Anthony
2b5adacbb9
Remove OpenDirectoryDialog 2024-06-17 08:06:32 +10:00
Lea Anthony
ab06920e74 Fix non-windows build issues 2024-06-09 08:28:38 +10:00
Lea Anthony
c937c3bd8b
@wailsio/runtime v3.0.0-alpha.25 2024-06-08 20:45:53 +10:00
Lea Anthony
9d488c97e0
Support raw messages from JS 2024-06-08 20:43:24 +10:00
Lea Anthony
9d24c039fe Fix linux window button methods 2024-06-08 15:56:17 +10:00
Lea Anthony
f738f1e246 Add more macOS version checks 2024-06-08 15:16:33 +10:00
Lea Anthony
95c751d4ac Fix compilation issue on Darwin < 12.3 2024-06-08 13:53:31 +10:00
Lea Anthony
bf9e17a6c8
[WEP] Customise Window Titlebars (#3508)
* Add proposal.
Reference Mac implementation

* Add windows support. Update proposal.

* Update example

* Rename Active->Enable,Inactive->Disabled. Ensure window can get controls back after hiding close on windows. Added guide. Updated example.

* Add ExStyle option for setting titlebar style.

* Fix linux builds

* Tidy up
2024-06-08 13:42:27 +10:00
Lea Anthony
2baca5d57d Update dependencies 2024-06-08 13:39:00 +10:00
Lea Anthony
b0fb67451d Fix icon issue for darwin. 2024-06-08 13:05:06 +10:00
Lea Anthony
f454abf45a
Slight clarification to the WEP guidelines 2024-06-02 10:03:00 +10:00
Atterpac
0dd73e249d
Revert "Remove OpenContextMenu" (#3524)
This reverts commit 54140e9adb.
2024-06-02 06:30:17 +10:00
Lea Anthony
54140e9adb
Remove OpenContextMenu 2024-06-01 15:04:35 +10:00
Travis McLane
45195d5bd6
linux: theme handling bugfix (#3515)
* linux: theme handling bugfix

* update changelog
2024-05-28 11:06:30 -05:00
Lea Anthony
2a056a7855
Fix ctrl key accelerator on macOS 2024-05-25 16:33:43 +10:00
Atterpac
940d0f1906
fix windows cross volume init (#3512)
changelog
2024-05-25 16:20:42 +10:00
Lea Anthony
1d2e1b15ea
Update Linux docs + doctor to suggest webkit2gtk-4.1 2024-05-21 07:47:19 +10:00
Lea Anthony
e424a85a99
Menu improvements (#3492)
* Expose `DefaultApplicationMenu`.
Add `FindByLabel` and `ItemAt` for finding menu items in a menu

* Add `Menu.RemoveMenuItem()`, `MneuItem.GetAccelerator()` and `MenuItem.RemoveAccelerator()`

* Remove `Update`

* Iterate when removing menu items

* Add `GetSubmenu()`
2024-05-20 21:15:02 +10:00
Fabio Massaioli
939d22d670
[v3] Enforce stricter typing for generated bindings (#3498)
* Subject generator output to stricter TS linting

* Fix runtime support code typing

* Relax tsconfig for templates

* Update test data

* Update binding example
2024-05-19 23:28:45 +10:00
Fabio Massaioli
90b7ea944d
[v3] New binding generator (#3468)
* Support variadic arguments and slice, pointer types

* Fix computation of type namespaces

* Improve comments and general formatting

* Set default values correctly for composite types

* Add templates for bindings

Additionally:
* fixes generation of tuple return type
* improves imports and namespacing in JS mode
* general cleanup of generated code

* Simplify import list construction

* Refactor type generation code

Improves support for unknown types (encoded as any) and maps (using
Typescript index signatures)

* Support slices with pointer elements

* Match encoding/json behaviour in struct parser

* Update tests and example

* Add tests for complex method signatures and json tag parsing

* Add test `function_multiple_files`

* Attempt looking up idents with missing denotation

* Update test data

* fix quoted bool field

* Test quoted booleans

* Delete old parser code

* Remove old test data

* Update bindgen flags

* Makes call by ID the default

* Add package loading code

* Add static analyser

* Temporarily ignore binding generation code

* Add complex slice expressions test

* Fix variable reference analysis

* Unwrap casts to interface types

* Complete code comments

* Refactor static analyser

* Restrict options struct usage

* Update tests

* Fix method selector sink and source processing

* Improve Set API

* Add package info collector

* Rename analyser package to analyse

* Improve template functions

* Add index file templates

* Add glue code for binding generation

* Refactor collection and rendering code

* Implement binding generator

* Implement global index generation

* Improve marshaler and alias handling

* Use package path in binding calls by name

* Implement model collection and rendering

* Fix wrong exit condition in analyser

* Fix enum rendering

* Generate shortcuts for all packages.

* Implement generator tests

* Ignore non-pointer bound types

* Treat main package specially

* Compute stats

* Plug new API into generate command

* Support all named types

* Update JS runtime

* Report dual role types

* Remove go1.22 syntax

* Fix type assertion in TS bindings

* encoding/json compliance for arrays and slices

* Ignore got files in testdata

* Cleanup type rendering mechanism

* Update JS runtime

* Implement generic models

* Add missing field in renderer initialisation

* Improve generic creation code

* Add generic model test

* Add error reporting infrastructure

* Support configurable file names

* Detect file naming collisions

* Print final error report

* New shortcut file structure + collision detection

* Update test layout and data

* Autoconfiguration for analyser tests

* Live progress reporting

* Update code comments

* Fix model doc rendering

* Simplify name resolution

* Add test for out of tree types

* Fix generic creation code

* Fix potential collisions between methods and models

* Fix generic class alias rendering

* Report model discovery in debug mode

* Add interface mode for JS

* Collect interface method comments

* Add interface methods test

* Unwrap generic instantiations in method receivers

* Fix rendering of nullable types in interface mode

* Fix rendering of class aliases

* Expose promise cancel method to typescript

* Update test data

* Update binding example

* Fix rendering of aliased quoted type params

* Move to strongly typed bindings

* Implement lightweight analyser

* Update test cases

* Update binding example

* Add complex instantiation test

* Load full dependency tree

* Rewrite collector

* Update renderer to match new collector

* Update generator to match new collector

* Update test data

* Update binding example

* Configure includes and injections by language

* Improve system path resolution

* Support rich conditions in inject/include directives

* Fix error handling in Generator.Generate

* Retrieve compiled go file paths from fileset

* Do not rely on struct info in struct flattening algorithm

* Fix doc comment for findDeclaraion

* Fix bugs in embedded field handling

* Fix bugs and comments in package collection

* Remove useless fields from ServiceInfo

* Fix empty line at the beginning of TS indexes

* Remove global index and shortcuts

* Remove generation tests for individual packages

* Enforce lower-case file names

* Update test data

* Improve error reporting

* Update binding example

* Reintroduce go1.22 syntax

* Improve relative import path computation

* Improve alias support

* Add alias test

* Update test data

* Remove no services error

* Rename global analyser test

* Add workaround and test for bug in typeutil.Map

* Update test data

* Do not split fully qualified names

* Update typeutil package and remove workaround

* Unify alias/named type handling

* Fix rendering of generic named class aliases

* Fix rendering of array types

* Minor tweaks and cleanups

* Rmove namespaced export construct

* Update test data

* Update binding example

* Break type cycles

* Fix typo in comment

* Fix creation code for cyclic types

* Fix type of variadic params in interface mode

* Update test data

* Fix bad whitespace

* Refactor type assertions inside bound methods

* Update test data

* Rename field application.Options.Bind to Services

* Rename parser package to generator

* Update binding example

* Update test data

* Update generator readme

* Add typescript test harness

* Move test output to new subfolder

* Fix code generation bugs

* Use .js extensions in TS mode imports

* Update test data

* Revert default generator output dir to frontend/bindings

* Bump runtime package version

* Update templates

* Update changelog

* Improve newline handling

---------

Co-authored-by: Andreas Bichinger <andreas.bichinger@gmail.com>
2024-05-19 20:40:44 +10:00
Atterpac
04a33e2206
refresh version up (#3495)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-05-19 19:03:08 +10:00
Lea Anthony
95956f6362
Update WEP README 2024-05-19 16:02:22 +10:00
Lea Anthony
e5d82915dd
Update WEP 2024-05-19 15:55:57 +10:00
Lea Anthony
e3f673d9db
Update WEP 2024-05-19 11:44:30 +10:00
Lea Anthony
4fd21432c5
Add WEP docs 2024-05-18 07:10:51 +10:00
Atterpac
9c4b412aea
fix react template css (#3477)
changelog
2024-05-14 06:39:20 +10:00
Atterpac
71b2edc0fe
[V3-Linux] Upgrade to Webkitgtk4.1 (#3461)
* webkitgtk4.0->webkitgtk4.1

changelog

* Update mkdocs-website/docs/en/changelog.md

* Update deps in pipeline

* Update deps in pipeline

* Install 4.1 only when v3

* Install 4.1 only when v3

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-05-08 18:08:14 +10:00
Lea Anthony
7661cd189f
Fix Go version 2024-05-08 08:27:38 +10:00
Mike D Pilsbury
0833a6d6d3
[v3] Correct detection of npm with acceptable version (#3458)
* Correct detection of npm with acceptable version

* Update changelog
2024-05-06 08:29:28 +10:00
Lea Anthony
7d851d8434
Fix disable min/max buttons on windows 2024-05-06 08:26:41 +10:00
Atterpac
2c29e1ca76
update devmode to use types and yaml (#3454)
go mod update
2024-05-05 17:27:53 +10:00
Travis McLane
5a57ee99ac example: environment - change css
text was colored white and therefore invisible.
2024-05-03 12:52:15 -05:00
Travis McLane
735b6b6c87 noop: remove Println for events.Linux.ApplicationStartup 2024-05-02 15:31:49 -05:00
Travis McLane
7ea0601fc6 remove Println
unknown key codes shouldn't print out to stdout
2024-05-02 11:02:21 -05:00
Travis McLane
99537f2816 remove Register/UnregisterWindow functionality
- this is no longer needed
2024-05-02 09:37:23 -05:00
Harry Fox
b384bb885b
add missing map init from application.init() (#3426)
* add missing map init from `application.init()`

* add changelog entry for #3426

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-05-02 21:57:51 +10:00
abichinger
2255af1c45
[v3] Add port flag to dev command (#3429)
* Add `port` flag to dev command, ...

Add support for environment variable WAILS_VITE_PORT

* Check if port is already in use

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-05-02 21:48:50 +10:00
Fabio Massaioli
f55b781d86
[v3] Binding runtime fixes (#3431)
* Unmarshal arguments to appropriate type in binding calls

* Marshal multiple return values to arrays in binding calls

* Improve logging of remote method calls

* Add tests for `BoundMethod.Call`

* Fix return value if error is nil

* Update changelog

---------

Co-authored-by: Andreas Bichinger <andreas.bichinger@gmail.com>
2024-05-02 21:46:07 +10:00
Lea Anthony
38d9a9551f
Add -trimpath for production build in project taskfile 2024-04-29 17:58:48 +10:00
Lea Anthony
c38cee0a4a
More optimised production build in project taskfile 2024-04-29 17:40:46 +10:00
Lea Anthony
0f9c7b1bbf
Fix nanoid dep for npm package 2024-04-28 19:43:37 +10:00
Lea Anthony
32ddbd8e05
set target branch to v3-alpha 2024-04-28 17:13:59 +10:00
Lea Anthony
67c493f1a8
Fix example building 2024-04-27 17:43:58 +10:00
Lea Anthony
69c513e33d
Fix pipeline tests 2024-04-27 17:38:10 +10:00
Lea Anthony
82b910dd6d
Fix pipeline tests 2024-04-27 17:16:21 +10:00
Lea Anthony
5d0a58cc6a
Update GetRelative/AbsolutePosition to take border size into account 2024-04-25 15:59:33 +10:00
Lea Anthony
368ca13314
Update window interface 2024-04-25 15:26:31 +10:00
Lea Anthony
2cee1edcb5
Add window.GetBorderSizes 2024-04-25 15:22:01 +10:00
Travis McLane
1b288a0a1a removing experimental server plugin 2024-04-23 09:32:21 -05:00
Harry Fox
81aba310d0
update Taskfile.tmpl.yml to include darwin run task (#3417)
* update Taskfile.tmpl.yml to include darwin run task

* add changelog line for #3417
2024-04-23 18:19:25 +10:00
Atterpac
b050a07362
dev mode adapt to OS (#3412)
changelog
2024-04-22 12:44:10 +10:00
Travis McLane
021efab84d
allow for non-Window WailsEvent listeners (#3406)
* allow for non-Window WailsEvent listeners

- adds a RegisterListener function on the App struct such
  that code can listen for WailsEvent(s) even if it isn't a Window
- rename dispatchEventToWindows -> dispatchEventToListeners
- add all windows and WailsEventListeners to slice before emitting

* Update v3/pkg/application/application.go

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-04-20 09:39:57 +10:00
Atterpac
0a42a050bd
fix dev mode windows pipe (#3402) 2024-04-18 23:14:20 +10:00
abichinger
9ca1b30da1
[v3 alpha] Fix drag-n-drop on some linux distros (#3346)
* Fix drag and drop on linux

- Move C code

* Use GTK_DEST_DEFAULT_DROP

* Update changelog

* Move C code back into `linux_cgo.go`
2024-04-15 10:05:23 -05:00
Atterpac
220d5535f7
revert dialog channel close (#3395)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-04-15 18:03:35 +10:00
Atterpac
0895e6a508
refresh version up (#3391) 2024-04-15 16:57:19 +10:00
Lea Anthony
ed5532a535
Update plugin docs 2024-04-14 21:47:37 +10:00
Lea Anthony
6f41dbf954
Merge branch 'refs/heads/v3-alpha-feature/plugin-updates' into v3-alpha 2024-04-14 21:42:16 +10:00
Lea Anthony
c7ed7e72d4
Major plugin updates 2024-04-14 21:41:33 +10:00
abichinger
a7208f5262
Update changelog (#3389) 2024-04-11 23:50:04 +10:00
Travis McLane
09f6680aa9 restore: run tests only after approval 2024-04-10 09:11:36 -05:00
Travis McLane
9261130fed chore: workflow update to run tests on correct directory 2024-04-09 16:57:04 -05:00
Travis McLane
fec22e0052 chore: bump staticanalysis to v2.8.0 2024-04-09 16:37:50 -05:00
abichinger
7c921d6a81
[v3 alpha] implement setIcon on linux (#3354)
* implement `linuxApp.setIcon`

* Move code into `linux_cgo.go`
2024-04-09 11:04:54 -05:00
Travis McLane
16a029754f disable 'server' example
Doesn't compile currently.
Disabling such that the workflow succeeds
2024-04-08 13:29:42 -05:00
Travis McLane
3c9fd67fd0 doctor: correct compilation errors 2024-04-08 13:23:12 -05:00
Travis McLane
724ca386e7 Merge remote-tracking branch 'origin/v3-alpha-linux-dialogs' into v3-alpha 2024-04-08 11:17:56 -05:00
atterpac
6f75b00463 Proper syncing and canceling of dialogs
s

s

s
2024-04-08 11:17:05 -05:00
Travis McLane
105d9f0d3a allow directory selection 2024-04-07 16:42:33 -05:00
atterpac
38f6b1297d Call linux dialog on main thread 2024-04-07 16:42:33 -05:00
Lea Anthony
cf130a6e25
[windows] Fix directory select in Open Dialog 2024-04-06 14:38:43 +11:00
Lea Anthony
e91c30fad0 Small doctor improvements 2024-04-03 20:48:55 +11:00
Lea Anthony
3e3f7b9273 Update discord link 2024-04-03 08:27:32 +11:00
Lea Anthony
88ff84f5a5
[windows] Improve Set window icon when in debug mode 2024-04-01 05:02:39 +11:00
Lea Anthony
eee373f15a
[windows] Set window icon when in debug mode 2024-04-01 04:55:34 +11:00
Lea Anthony
c839c053cb
[windows] Fix min/max buttons 2024-03-29 21:44:59 +11:00
Lea Anthony
238b9ede78 Update plugin example 2024-03-26 21:11:35 +11:00
Lea Anthony
c7bd39abc7 Update plugin example 2024-03-26 21:02:26 +11:00
Lea Anthony
85b1f909a7 Plugin updates 2024-03-26 20:56:58 +11:00
Calle Gustafsson
675f502802
wails3 alpha windows: fix crash when systray icon is clicked without an attached window (#3271)
* Fix: #3270

removes an unnessecary check which returned a double nil wich in turned causes a crash if systray doesn't have an attached window.

* Add iconIsInFlyout method to systray_windows

and use it to determine if the icon is in the
flyout or not when positioning an attached window.

* optimize the windows systray window positioning

we only need to get the systray bounds if
the icon is in the flyout area.

* Use correct behavior for placing the window

if the systray icon is visible in the taskbar the
window should be centered on the systray icon
otherwise the icon is in a flyout are and the
window should be placed in the corner.

Added comments to explain placement logic

* consistent placing of systray menu on right vs left click

* add PR info in changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 17:04:40 +11:00
abichinger
db5553ec75
[linux] fix closing of custom context menu #3329 (#3330)
* [linux] fix closing of custom context menu

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 16:51:45 +11:00
Fabio Massaioli
413191411f
Remove class fields (#3333) 2024-03-24 16:42:41 +11:00
Fabio Massaioli
45b2681dfc
[v3] Fix binding generator output and import paths (#3334)
* Fix relative import path computation

* Fix models output path

* Add option to generate bindings using bundled runtime

* Update binding example

* Fix testdata

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-22 21:18:04 +11:00
Travis McLane
f0986a6441 chore: version.txt == v3.0.0-alpha.4 2024-03-21 14:16:39 -05:00
stffabi
e6645136f9 [windows] Set HiDPI size scaling before setting up chromium 2024-03-21 09:42:23 +01:00
stffabi
189820135a [windows] Use options for window name 2024-03-21 09:42:23 +01:00
Lea Anthony
f19cc528d4 Fix context menu example 2024-03-20 21:18:46 +11:00
Fabio Massaioli
2b9891da2c
[v3] Update and fix runtime JS API (#3295)
* Cleanup bundled runtime entry point

* Fix JS representation of Screen struct

* Expose IsFocused method in Window interface

* Update JS window API

* Fix cleanup of WML listeners

* Bundle runtime as ES module

* Update runtime dependencies

* Update runtime types and events

* Update bundled runtime

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-20 20:30:14 +11:00
Lea Anthony
a5c843f5c6 Disable social plugin in docs 2024-03-20 08:32:24 +11:00
Lea Anthony
aa8e74539c Rebuild docs 2024-03-20 07:52:31 +11:00
Lea Anthony
d1968489b7 Don't build server plugin 2024-03-20 07:43:27 +11:00
Lea Anthony
33946a7aac Don't build server plugin 2024-03-19 21:56:54 +11:00
Lea Anthony
ddf74d3793 Update go version in pipelines 2024-03-19 21:45:52 +11:00
Lea Anthony
1b3b8178ec Update node version in pipelines
(cherry picked from commit c451adc424)
2024-03-19 21:35:38 +11:00
Lea Anthony
bf3bdadd90 Update changelog 2024-03-19 21:07:14 +11:00
Lea Anthony
aba82cc527 Update system.Environment 2024-03-19 20:37:03 +11:00
atterpac
e92994d2e7
Refresh Version Update (CPU Thread Leak Fix) (#3322)
* Fix appimage file sourcing

Add findGTKFiles to source webkit files for appimage generation

s

* Update refresh version to fix CPU usage

s

* update changelong

* refresh version up

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-19 08:41:47 +11:00
Lea Anthony
26d9b3a832 Update docs config 2024-03-19 08:36:57 +11:00
Lea Anthony
bfabaa50bc Add Cymraeg 2024-03-18 21:52:39 +11:00
Lea Anthony
7fcd172387 Update first steps 2024-03-18 20:57:56 +11:00
Lea Anthony
c5bb4c7405 Refactor docs 2024-03-18 20:47:33 +11:00
Lea Anthony
98aff7778e Support ProgramName on linux 2024-03-17 21:09:20 +11:00
Lea Anthony
4ab6352504 Set default size for linux windows 2024-03-17 20:57:46 +11:00
Lea Anthony
b325381ca0 Normalise app/webview options
Update deps
2024-03-17 20:57:46 +11:00
Lea Anthony
bc0a9b2e52 Add BundledAssetFileServer for bundled /wails/runtime.js. Update examples. 2024-03-17 15:08:30 +11:00
atterpac
75c0236a04
[v3] Fix Dev mode <defunct> processes (#3320)
* Fix appimage file sourcing

Add findGTKFiles to source webkit files for appimage generation

s

* Update refresh version to fix CPU usage

s

* update changelong
2024-03-17 14:17:21 +11:00
atterpac
ec2ce3fcfb
Fix appimage file sourcing (#3306)
Add findGTKFiles to source webkit files for appimage generation

s
2024-03-17 11:17:17 +11:00
Lea Anthony
e9a9420e5c Refactor options.
Update deps
2024-03-17 09:42:27 +11:00
Travis McLane
209e097ba6 rename linux options file
`linux` suffix means it won't compile on non-Linux platforms.
Shorten the name to avoid:

../../pkg/application/options_webview_window.go:104:8: undefined: LinuxWindow
../../pkg/application/options_application.go:28:8: undefined: LinuxOptions
../../pkg/application/options_webview_window.go:104:8: undefined: LinuxWindow
2024-03-14 13:25:23 -05:00
Lea Anthony
8d234cc842 Update execjs signature 2024-03-14 08:57:10 +11:00
Lea Anthony
e6805707d8 Fix mac compilation issues 2024-03-14 08:52:10 +11:00
Lea Anthony
acd6f7af5b Merge remote-tracking branch 'origin/v3-alpha-linux' into v3-alpha 2024-03-14 08:39:19 +11:00
Josh Drake
f38532bcf5
Correctly compute 'startURL' when using a frontend development server. (#3299)
* Fix computing 'startURL' when 'FRONTEND_DEVSERVER_URL' is present.

* Respect provided URL when computing 'startURL' and 'FRONTEND_DEVSERVER_URL' is present.

* Update changelog.

* Correctly produce absolute URI in 'GetStartURL' when input is provided.
2024-03-08 18:06:14 +11:00
Travis McLane
4b2189ba51 allow keypress propagation
- this allows the webkit to add values to the `input` when typed
FIXME: does this need to be configurable?
2024-03-07 09:03:47 -06:00
Travis McLane
fb46cce963 simplify key handling logic 2024-03-07 09:03:32 -06:00
Travis McLane
eedd5eb7d2 reuse the 'wv' variable 2024-03-07 09:02:39 -06:00
Travis McLane
716f4af808 [linux] add missing implementations 2024-03-06 17:10:41 -06:00
Travis McLane
c21784037d wip: fixing rebase issue 2024-03-06 16:59:13 -06:00
Lea Anthony
0fde6c9922 Latest status 2024-03-06 16:59:13 -06:00
Travis McLane
6d90c1678c move install_signal_handlers to proper location 2024-03-06 16:59:13 -06:00
Lea Anthony
a7fb568aff Fix signal handlers 2024-03-06 16:59:13 -06:00
Lea Anthony
065ca5f6d3 Move to latest webkit2 and remove older code.
Fix screen demo.
Update examples.
2024-03-06 16:59:13 -06:00
Lea Anthony
ab9eec12eb Update status. Make wml demo non-drag 2024-03-06 16:59:13 -06:00
Lea Anthony
430736a4f2 Remove need for javascriptcore 2024-03-06 16:59:13 -06:00
Lea Anthony
161444107a Support linux systrays, of sorts... 2024-03-06 16:59:13 -06:00
Lea Anthony
12e2e2101a fix screens 2024-03-06 16:59:13 -06:00
Lea Anthony
e39097a17e fix min/max 2024-03-06 16:59:13 -06:00
Lea Anthony
be7c723c47 Fix window close issues
Update docs
Make uri scheme registration thread safe
2024-03-06 16:59:13 -06:00
Lea Anthony
a60b198b03 Fix window close issues 2024-03-06 16:59:13 -06:00
Lea Anthony
e06df85f02 WindowID now correctly processed by postMessage calls. 2024-03-06 16:59:13 -06:00
Lea Anthony
288a4757f8 WindowID now correctly passed with webview request. 2024-03-06 16:59:13 -06:00
Lea Anthony
29363fc07f ToggleDevTools -> OpenDevTools
More refactor CGO methods.
2024-03-06 16:59:13 -06:00
Lea Anthony
02a1b540ce [WIP] refactor CGO methods 2024-03-06 15:43:50 -06:00
Lea Anthony
a048233f4c Added menu cloning.
Introduced the ability to clone a menu, along with its submenus, in Linux-based web applications to create a full deep copy. This fixes reusing the application menu for window menus.
2024-03-06 15:40:28 -06:00
Lea Anthony
758c4c2c8d Refactor Linux application handling in webview
This update introduces a LinuxOptions struct for Linux-specific application configurations and refines webview for Linux. The 'windows' map has been renamed to 'windowMap' to avoid confusion. Moreover, a method to unregister Windows has been added to ensure the Linux application automatically quits when the last window closes, unless explicitly disabled in the new LinuxOptions structure. Reset Window position after hiding. Some debug output has been removed.
2024-03-06 11:52:06 -06:00
Lea Anthony
adae39efee Add webview GPU policy and update Linux options
The commit introduces a set of webview GPU policies to control hardware acceleration. These policies define when hardware acceleration is enabled on the webview. An option for this has been added to the LinuxWindow struct for Linux specific windows. Additional code modification was carried out to use this new GPU policy option when calling `windowNew` function. Finally, the sequence of the GPU Policies in the const declaration has been updated for better readability.
2024-03-06 11:49:11 -06:00
Lea Anthony
84e1bb4d9b Improve Linux application events and refactor app method receivers
This commit includes the addition of common events for the Linux platform. Refactored and standardized the method receivers for the application from 'm' to 'l'. Also, the application startup events in the window example have been updated according to the new naming scheme.
2024-03-06 11:48:26 -06:00
Lea Anthony
6b0daf3da9 Update windowSetupSignalHandlers & linux events 2024-03-06 11:44:55 -06:00
Lea Anthony
b6c5d90c9d Window Flash for Linux
Set Min/Max window buttons
2024-03-06 11:43:16 -06:00
Lea Anthony
a34ccbff33 ToggleDevTools -> OpenDevTools
More refactor CGO methods.
2024-03-06 11:43:12 -06:00
Lea Anthony
4cd4b46772 [WIP] refactor CGO methods 2024-03-06 11:42:19 -06:00
Lea Anthony
3d93c83920 Added menu cloning.
Introduced the ability to clone a menu, along with its submenus, in Linux-based web applications to create a full deep copy. This fixes reusing the application menu for window menus.
2024-03-06 11:42:19 -06:00
Lea Anthony
809863d61a Refactor Linux application handling in webview
This update introduces a LinuxOptions struct for Linux-specific application configurations and refines webview for Linux. The 'windows' map has been renamed to 'windowMap' to avoid confusion. Moreover, a method to unregister Windows has been added to ensure the Linux application automatically quits when the last window closes, unless explicitly disabled in the new LinuxOptions structure. Reset Window position after hiding. Some debug output has been removed.
2024-03-06 11:42:19 -06:00
Lea Anthony
4c7b643295 Add webview GPU policy and update Linux options
The commit introduces a set of webview GPU policies to control hardware acceleration. These policies define when hardware acceleration is enabled on the webview. An option for this has been added to the LinuxWindow struct for Linux specific windows. Additional code modification was carried out to use this new GPU policy option when calling `windowNew` function. Finally, the sequence of the GPU Policies in the const declaration has been updated for better readability.
2024-03-06 11:42:19 -06:00
Lea Anthony
05b16f1d63 Improve Linux application events and refactor app method receivers
This commit includes the addition of common events for the Linux platform. Refactored and standardized the method receivers for the application from 'm' to 'l'. Also, the application startup events in the window example have been updated according to the new naming scheme.
2024-03-06 11:42:19 -06:00
Lea Anthony
bfa53dfd6c Update windowSetupSignalHandlers & linux events 2024-03-06 11:42:19 -06:00
stffabi
4467a1ffa2 [parser] Move context tests into a separate file 2024-03-04 12:38:21 +01:00
stffabi
bfe9a9d015 [runtime] Add cancelation of bound method calls and context passing 2024-03-04 10:34:14 +01:00
Fabio Massaioli
7e687750b2
[v3] Add option for showing the toolbar in fullscreen mode on macOS (#3282)
* Add option for showing the toolbar in fullscreen mode on macOS

* Add an example demonstrating the ShowToolbarWhenFullscreen option

* Update docs

* Add changelog entry

* Run go mod tidy
2024-03-02 20:10:25 +11:00
Fabio Massaioli
0c3025d695
[v3] Fix ordering of if branches in WebviewWindow.Restore method (#3279)
* Add JS Window API example

* Fix ordering of if branches in Window.Restore method

* Add changelog entry
2024-03-02 16:04:02 +11:00
5aaee9
a9c22f0588
fix: wrong baseURL if open window twice (#3273) 2024-02-29 08:47:25 +11:00
Fabio Massaioli
b8537d1c96
[v3] Restore ToggleMaximise method in Window interface (#3281)
* Add JS Window API example

* Add ToggleMaximise button to Window API example

* Restore ToggleMaximise method in Window interface

* Update docs and changelog
2024-02-29 08:42:57 +11:00
stffabi
12d12a33de [v3, assetServer] Update docs 2024-02-21 13:40:32 +01:00
stffabi
1956f95f9f [templates] Update templates to latest assetserver options 2024-02-16 08:04:16 +01:00
stffabi
723dd976b4 [v3, assetServer] Use middlewares for runtime, caps and falgs instead of having the implementation in the assetserver 2024-02-16 07:38:28 +01:00
stffabi
65251cdafa [v3, assetServer] Remove fs.FS from options and always use a http.Handler 2024-02-16 07:38:27 +01:00
Lea Anthony
471d626043
Add control to disable window buttons on Mac
Three new options have been introduced in the application options for MacOS to disable the minimize, maximize, and close buttons on the window. Corresponding functionality has been added in the webview window for darwin to handle these new options. These changes have been showcased in the window example main.go file.
2024-02-08 08:31:58 +11:00
Lea Anthony
0b82968c0f
Add option to disable min/max windows buttons
This commit introduces the functionality to disable the minimise and maximise buttons on windows. These options have been added to the `application.WebviewWindowOptions` and integrated in the Windows application logic. Effectively, developers can now control the availability of these buttons in their windows applications.
2024-02-07 10:06:07 +11:00
ALMAS
0584a3929d
Fix docs (#3228) 2024-02-03 07:01:57 +11:00
Lea Anthony
09815e6035
Update runtime.md 2024-02-02 17:14:09 +11:00
Lea Anthony
9a01650622
Update runtime.md 2024-02-02 17:10:33 +11:00
Lea Anthony
fb5afbd394
Fix docs 2024-02-02 17:01:41 +11:00
Lea Anthony
fc105cee2b
Update docs 2024-02-01 21:39:32 +11:00
Lea Anthony
1ec3b4ecab
v3.0.0-alpha.4 2024-02-01 21:09:03 +11:00
Lea Anthony
6e2bbe31ac
[windows] fix frameless resize 2024-02-01 06:47:49 +11:00
Lea Anthony
5670c1e655
Update compiled runtime 2024-01-31 21:39:46 +11:00
Lea Anthony
7f5d836916
Fix feedback text 2024-01-31 17:55:21 +11:00
Lea Anthony
cbaf859103
@wailsio/runtime@3.0.0-alpha.20
This fixes dragging by working around Vite's aggressive tree shaking
2024-01-30 21:01:32 +11:00
Lea Anthony
5115b294ee
Fixed runtime. cp tool. 2024-01-29 21:29:16 +11:00
Lea Anthony
c01bc4dbd7
Update runtime 2024-01-29 19:07:44 +11:00
Lea Anthony
7674f8eb2b Fixed dialogs on macOS. Update WML example to use compiled runtime. 2024-01-25 21:00:33 +11:00
Lea Anthony
773bdf8ea2
Fix small bugs in assetserver 2024-01-21 21:46:45 +11:00
Lea Anthony
b249f0d0ce
Bring linux up to date with dev changes 2024-01-21 21:24:30 +11:00
Lea Anthony
6522657893
Refactor menu functions and streamline devtools toggle across systems
This update adds implementation to several menu item functions, replacing their previous 'not implemented' state. This includes actions for close, reload, forcing reload, toggling of fullscreen, reset zoom, and others. The update also includes modifications for the handling of developer tools toggle under different build configurations. This refactoring is aimed to standardize devtools configuration across different operating systems.
2024-01-21 20:52:32 +11:00
Lea Anthony
c82facd6ff
Move startURL calculation to assetserver 2024-01-20 11:50:20 +11:00
Lea Anthony
bcb390f611
@wailsio/runtime v3.0.0-alpha.16 2024-01-20 11:38:56 +11:00
Lea Anthony
a805d6c2b1
@wailsio/runtime v3.0.0-alpha.15 2024-01-20 11:34:36 +11:00
Lea Anthony
3d08f92705
Update status. Fix dev task. 2024-01-20 08:45:44 +11:00
Lea Anthony
2436229145
Fix feedback page 2024-01-19 21:37:37 +11:00
Lea Anthony
e5c14d24ae
Initial implementation of dev mode.
Huge thanks to @atterpac!
2024-01-19 21:34:49 +11:00
Thomas Sénéchal
23c1a7d1d8
[v3/Windows] Fix failing Windows build due to undefined options (#3208)
* Fix failing Windows build due to undefined options

* Update changelog
2024-01-18 05:33:51 +11:00
Thomas Sénéchal
44bbce125b
[V3/macos] Fix systray click handling when no attached window (#3207)
* Fix systray click handling

* Open Menu if no window is attached in defaultClickHandler()

* Remove systemTraySetMenu function

* Fix a crash in hide-window example

* Update changelog
2024-01-17 22:36:22 +11:00
Lea Anthony
dff47263d5 Set default extension for save dialog file filter
The code update sets the default extension to the first pattern in the save dialog file filter when options.Filters is populated. This improvement applies to Windows platform interface function for 'Save File Dialog' and provides a more intuitive user experience.
2024-01-17 22:35:58 +11:00
Lea Anthony
861ddea1b2
Add option to prevent application shutdown
This update allows the application shutdown to be cancelled. It implements the shouldQuit function, which can prevent the application from quitting if it returns false. Additional checks have been added to ensure cleanup and quit processes are performed only if required. The darwin delegate and linux and windows applications were modified to include this new functionality.
2024-01-17 20:45:30 +11:00
Lea Anthony
ab22ea1f27
Update alpha docs 2024-01-14 09:22:27 +11:00
Lea Anthony
a6757c352f
Add shutdown tasks functionality to application
A new method OnShutdown was introduced to allow adding tasks to be run when the application shuts down. The shutdown tasks are run on the main thread and in the order they were added, with the application option `OnShutdown` being run first. This allows more controlled and managed shutdown of the application.
2024-01-14 08:17:17 +11:00
Lea Anthony
2d97776caa
[bindings] Support aliases in package imports 2024-01-14 08:07:47 +11:00
ALMAS
3cd26a2220
[v3] Improve OnShutdown (#3190)
* [v3] Improve OnShutdown

* add change log
2024-01-10 23:28:15 +11:00
Lea Anthony
f759162fd1
Update alpha.3 status 2024-01-10 08:51:29 +11:00
Lea Anthony
6c3bd124ce
Added option to disable AssetServer logging.
An option to disable AssetServer logging has been introduced in the application options. This will suppress every request log from the AssetServer if set to true. This adjustment is useful for preventing log saturation in certain scenarios or environments.
2024-01-09 22:15:42 +11:00
Lea Anthony
68b12d4fff
Refactored application shutdown process to streamline app termination.
The application shutdown process has been significantly reworked to be more efficient and robust. The refactored code removes the event listener for the 'ApplicationTerminate' event. Instead, an in-process flag is added to the 'Quit' method to prevent recursive calls. Additionally, an optional 'OnShutdown' function variable is introduced to allow custom cleanup operations upon app termination.
2024-01-09 18:19:09 +11:00
Lea Anthony
1195464acb Improve window teardown on termination
This commit adds a robust teardown process for windows on application shutdown. It introduces a field to track the destruction state of each window and checks such before performing window operations. Also, it enhances the destroy functions within application for thorough clean up. Finally, redundant event handlers related to application termination were removed while fixing file generating challenge in go tasks.
2024-01-09 07:45:56 +11:00
Lea Anthony
68e779d64e
[darwin] add support for quitting app 2024-01-08 21:22:33 +11:00
Lea Anthony
df0419a7d6
@wails/runtime@v3.0.0-alpha.14 2024-01-08 21:21:24 +11:00
Lea Anthony
3dff6c6875
Update alpha.3 support table 2024-01-07 21:26:35 +11:00
Lea Anthony
07421ead41
@wailsio/runtime@3.0.0-alpha.13 2024-01-07 20:12:17 +11:00
Lea Anthony
b6dc199993
Update bindings tests 2024-01-07 20:11:34 +11:00
Lea Anthony
6d8a004f4a
Fixed Call.ByID JSDoc + TS type 2024-01-07 10:44:18 +11:00
Lea Anthony
1dae9f613f
Improved templates 2024-01-07 08:19:07 +11:00
Lea Anthony
34f7f24e7e
Support Vite 5 templates + @wailsio/runtime module 2024-01-06 16:38:51 +11:00
Lea Anthony
40bd6125f5
Better pass through of args to task 2024-01-02 21:25:09 +11:00
stffabi
012eeab3aa [windows] Fix #2359 by not redirecting the accelerators to wndproc
If someone wants to handle accelerators they could use the key
bindings in a cross-platform way.
2023-12-30 23:34:54 +01:00
stffabi
2f3eb70a4d [windows] Use msWebView2BrowserHitTransparent for non working NC area clicks on unfocused window
Without this patch there's a really strange behaviour if there are
multiple windows.
Having two windows with a webview open with an input field.
Focusing the input field on one window, then focusing the input
field on the second one. Then clicking directly on the non client
area of the first one, e.g. to trigger a minimze, the minimize is
not executed until the mouse is getting moved. As long as the
mouse is not moved the event for the click is blocked and not
executed.

Using this new mode fixes that problem, but we need to handle
‘alt+f4’ on our own.
2023-12-30 23:34:54 +01:00
stffabi
b37d0f1cf4 [windows] Improved focus handling
Make sure the webview is focused on initial show if the window
is focused and make behaviour consistent with macOS
2023-12-30 23:34:53 +01:00
Lea Anthony
6262a4fac7
Update @wailsio/runtime version to 3.0.0-alpha.10 2023-12-31 07:24:40 +11:00
Lea Anthony
c531c714d4
Update vanilla+js template and dependencies
The frontend interaction has been significantly updated, including improvements to the Greet function and the addition of an ongoing time display. Additionally, dependencies in package.json have been updated to their latest versions. Also, redundant print statement was removed from messageprocessor_call.go and changes were made to layout structure and styles in the main.go.tmpl and index.html files.
2023-12-30 21:11:38 +11:00
Lea Anthony
d423c1c366
Fix drag logic 2023-12-30 21:05:17 +11:00
Lea Anthony
5b51e0fad3
@wailsio/runtime alpha.9 - Fix call responses. 2023-12-30 15:49:23 +11:00
Lea Anthony
4151deb9f6
Update milestones 2023-12-30 13:49:27 +11:00
Lea Anthony
d8f9ea7a33
Add NSIS to doctor checks 2023-12-29 20:13:23 +11:00
Lea Anthony
46127c8d4d
Support Typescript in JS Runtime module 2023-12-29 18:12:01 +11:00
Lea Anthony
8a12a32d31
Vanilla template: Update to use runtime module 2023-12-29 12:50:25 +11:00
Lea Anthony
9f567fe2bc
Application: increase message buffer sizes, process all messages in goroutine, Add IsDebug to environment info. 2023-12-29 12:48:26 +11:00
Lea Anthony
7f8c1c8a68
Remove redundant IPC endpoint.
Don't auto-inject runtime.
2023-12-29 12:42:03 +11:00
Lea Anthony
4a910a7197
Update Bindings Generation
Better flow for improved CLI output
Fixed number of methods calculation
2023-12-29 12:39:11 +11:00
Lea Anthony
4c3cbc3535
Update Wails runtime and increase version
The Wails runtime has been updated to correctly handle debug checks and the version in the package.json has been bumped to 3.0.0-alpha.6. Fixed reference to global wails object in WML.
2023-12-29 11:15:40 +11:00
Lea Anthony
0974a3ad18
Use relative paths in go.mod for replace line. 2023-12-28 19:33:37 +11:00
Lea Anthony
b08126d745
Radical JS runtime overhaul. New @wailsio/runtime package 2023-12-28 19:18:26 +11:00
Lea Anthony
d1255d3a9d
Support TS bindings. Update tests. Tidy up. 2023-12-23 08:49:58 +11:00
Lea Anthony
cf7537df01
Update roadmap documentation 2023-12-22 20:38:03 +11:00
Lea Anthony
3e419de86b
Add permalink to doc headers 2023-12-22 20:34:11 +11:00
Lea Anthony
2bb25b12ff
Update bindings generator to generate bindings in packages and files.
Remove unused JavaScript files
Update tests.
Update v3 docs
2023-12-22 20:01:42 +11:00
Lea Anthony
cdf4bdd2ba
Support generating enums from imported package 2023-12-20 08:06:35 +11:00
ALMAS
e0b8da86ed
[v3] export SetIcon method (#3147)
* export `SetIcon` method

* add change log
2023-12-19 23:43:28 +11:00
Lea Anthony
472288b2e3
Support generating bindings by name 2023-12-19 21:28:23 +11:00
ALMAS
51afac4f22
[v3/windows] Fix dpi scaling on start up (#3145)
* [v3/windows] Fix dpi scaling on start up

* add change log
2023-12-19 19:31:38 +11:00
Marcus Crane
daed4141f5
(v3/linux): Add Taskfile template entry for run:linux (#3146)
* Add Taskfile entry for run:linux, used by task dev

Signed-off-by: Marcus Crane <marcus@utf9k.net>

* Add updated CHANGELOG entry

Signed-off-by: Marcus Crane <marcus@utf9k.net>

* Correct CHANGELOG entry

---------

Signed-off-by: Marcus Crane <marcus@utf9k.net>
2023-12-19 19:29:46 +11:00
Lea Anthony
157c5e91fc
Move v3 updates into v3 changelog 2023-12-19 05:58:31 +11:00
Lea Anthony
e51e184cca
Merge branch 'master' into v3-alpha
# Conflicts:
#	v2/internal/app/app_devtools_not.go
#	website/src/pages/changelog.mdx
2023-12-19 05:55:08 +11:00
Lea Anthony
2b3c96ab3d
Fix hex keys5 (#3140)
* [v3 darwin] change hex values for arrow keys pulled from "Key Codes" app

* Update changelog

---------

Co-authored-by: Josh <josh@nerdy.co.nz>
2023-12-18 08:54:55 +11:00
Lea Anthony
371e57588f
Update bindings example 2023-12-16 20:57:00 +11:00
Lea Anthony
182f43004a
Improved bindings generation: support JS Models. 2023-12-16 14:02:19 +11:00
Lea Anthony
23c2660fb0
Fix relative links 2023-12-13 22:46:33 +11:00
Lea Anthony
ea409a2cb2
Improve documentation 2023-12-13 22:40:35 +11:00
Lea Anthony
984db8620a
Support enums in interface generation 2023-12-12 22:25:51 +11:00
Lea Anthony
995d9fdc9b
Update alpha 3 docs 2023-12-12 22:10:22 +11:00
Lea Anthony
4b04c10f14
Support bindings, model & enum generation 2023-12-12 21:51:40 +11:00
Light
43c4966873
Update Alpha3 bindings status (#3116)
* Update alpha3-models.csv

* Update alpha3-bindings.csv
2023-12-11 21:34:34 +11:00
Lea Anthony
85fc3a3af6
Update csv status 2023-12-11 19:56:19 +11:00
Lea Anthony
85d68cec55
Update csv status 2023-12-11 18:33:27 +11:00
Lea Anthony
89b5f0af20
v3.0.0-alpha.3 2023-12-11 08:43:32 +11:00
Light
659f3fa8e2
Update WSL alpha2 support (#3097)
* Update WSL alpha2 support

* fixed missing colons

* change dev to partial support and fix more typos
2023-12-05 21:21:20 +11:00
Lea Anthony
8242834fbd
[windows] improvements to dev 2023-11-27 21:24:58 +11:00
Lea Anthony
814e1ec059
[windows] initial wails dev support 2023-11-27 20:38:42 +11:00
Lea Anthony
12efb8b981
Update default taskfile. WIP linux packaging 2023-11-20 20:41:17 +11:00
Lea Anthony
b9558cc3cb
Update default taskfile. WIP linux packaging 2023-11-18 13:08:59 +11:00
Lea Anthony
022baad9e5
Update default taskfile. Update copyright symbol 2023-11-17 21:53:45 +11:00
Lea Anthony
9629b1414e Improve default taskfile 2023-11-16 22:59:04 +11:00
Lea Anthony
ea44cf850c Improve default taskfile 2023-11-16 22:53:52 +11:00
Lea Anthony
61c8c9eac0 Improve default taskfile 2023-11-16 22:48:08 +11:00
Lea Anthony
c89f59dc7c
Update nav 2023-11-16 09:00:39 +11:00
Lea Anthony
1fed110afd
Update bug reporting docs 2023-11-16 08:52:00 +11:00
Lea Anthony
4ea6a2d120
Support wails package on Windows 2023-11-15 20:45:38 +11:00
Travis McLane
f84bb6a287 chore: update alpha2 status linux 2023-11-13 09:18:27 -06:00
Lea Anthony
869a6f761a [docs] Update alpha2 status 2023-11-12 21:47:00 +11:00
Lea Anthony
2d3029482d [docs] Update alpha2 status 2023-11-12 21:45:57 +11:00
Lea Anthony
250e9f91ba [darwin] Wrappers for init, build, dev, package. Refactored default Taskfile. 2023-11-12 21:41:10 +11:00
Lea Anthony
df49f49c60
v3.0.0-alpha.2 2023-11-12 21:37:09 +11:00
Lea Anthony
3e0ff5edbd [darwin] Update docs 2023-11-12 20:16:19 +11:00
Lea Anthony
1142e81348 [darwin] fix CATransaction errors. Update docs. 2023-11-12 17:06:11 +11:00
Lea Anthony
ae38d1e020
Fix taskfile in templates. Sanitize the project name 2023-11-12 16:36:01 +11:00
Lea Anthony
eefeadc018 [darwin] fix hiding in window example 2023-11-12 16:13:09 +11:00
Lea Anthony
4593b52863
Include javascriptcore lib for build 2023-11-12 15:59:56 +11:00
Lea Anthony
7333ca6c61
Change order of steps for build 2023-11-12 15:51:17 +11:00
Lea Anthony
5b5a4ba4cc
Fix windows build 2023-11-12 14:23:13 +11:00
Lea Anthony
9af14015e4 [chore] add javascriptcoregtk dep in actions 2023-11-12 14:07:11 +11:00
Lea Anthony
ef80562a0f [chore] fix go.mod 2023-11-12 14:01:48 +11:00
Lea Anthony
0b48c3456b
[linux] Add webkit version detection + capabilities 2023-11-12 08:21:31 +11:00
Lea Anthony
1f16655769
[linux] Allow devtools by default 2023-11-11 19:05:03 +11:00
Travis McLane
b8d780ba4a
Feature/template consolidation (#3046)
* remove 'test' project

* dynamic template list generation

- uses a single fs.Embed to contain all templates
- walks and rebuilds the list of TemplateData using the cached data
- pulls the `description` out of the required `template.json` file in
  the template directory

* [v3] template handling update

- move "common" template files to a _common directory
- update generator to render from _common/* first
- render selected template last to overwrite anything provided by
  _common if needed
- remove duplicate files from all templates that do not change

* cleanup template project directory after test

* add linux to _common/Taskfile.yaml

* noop: whitespace cleanup _common/Taskfile.yaml
2023-11-11 12:26:28 +11:00
Travis McLane
965460edb7 [v3 linux] update status matrix 2023-11-09 21:12:56 -06:00
Travis McLane
53ea6511fc [v3 linux] correct bug in getScreenByIndex 2023-11-09 21:11:35 -06:00
Light
eae73dfa18
Update roadmap.md (#3044)
Fix weird characters on roadmap page, seems funky to me.
2023-11-09 21:55:19 +11:00
Travis McLane
27c4c5e6f6 [v3 linux] bail early if bad dbus message
Need at least two elements to decide what theme it is and if it is
a theme message at all.

Addresses #3040
2023-11-08 22:41:35 -06:00
Travis McLane
6f197f67f1 [linux] remove deprecated version of webkit callback handling 2023-11-08 22:31:05 -06:00
Light
412c3a5ed1
update windows drag and drop to working (#3039)
* update windows drag and drop to working

* add pr to changelog
2023-11-08 22:36:47 +11:00
Travis McLane
385b1dbfd4 [linux] implement 'script-message-received' handling
- use unsafe.Pointers for 'signal_connect'
- add handler for 'script-message-received::external'
  need to update this to handle older versions of webkit2gtk better
  currently removed the ifdef guards (since they don't work in Go code
  directly) - need to reimplement using build tags if required.
2023-11-06 23:29:03 -06:00
Travis McLane
0a4c596ecb [v3 darwin] typecast as ApplicationEventType 2023-11-06 12:20:10 -06:00
Travis McLane
d2e0e0ed81 [v3 windows] avoid casting ApplicationEvent as int 2023-11-06 12:14:18 -06:00
Travis McLane
f787cf4bc2 [v3 linux] show dev tools if OpenInspectorAtStartup=true 2023-11-06 12:04:20 -06:00
Travis McLane
ca21a3b79d [v3 linux] initial pass at event generation 2023-11-06 10:49:14 -06:00
Travis McLane
a773da2651 [v3 linux] use dbus for monitoring theme changes 2023-11-06 10:49:14 -06:00
Travis McLane
1a90b45f18 add linux status for examples 2023-11-06 10:49:14 -06:00
Travis McLane
9f6cd35155 [v3 linux] stop key-press event propagation 2023-11-06 10:49:14 -06:00
atterpac
f122db2e7b Linux Keybinds
- Adds getKeyboardState into linux_cgo to parse keypress event and transfer it into
  an accelerator for the handleKeyEvent using GDK keycodes
2023-11-06 10:49:11 -06:00
Travis McLane
d65f1b1647 [v3 docs] update status.md 2023-11-06 10:48:42 -06:00
Travis McLane
0fc535f2f1 [v3 linux] contextMenus 2023-11-06 10:41:14 -06:00
Travis McLane
e420900e55 [v3 examples] go.* update 2023-11-06 10:41:14 -06:00
Travis McLane
0cd64d1fbc [v3 linux] noop: remove commented code 2023-11-06 10:41:14 -06:00
Travis McLane
46a0030387 [v3] noop: gofmt changes 2023-11-06 10:41:14 -06:00
Travis McLane
495da9b292 [v3 linux] implement logPlatformInfo 2023-11-06 10:41:14 -06:00
Travis McLane
efb300c9f0 [v3] update go.sum 2023-11-06 10:41:14 -06:00
Travis McLane
7f1706fc74 [v3 examples/build] Taskfile update
- add Linux production build
- remove OS X env from basic build
2023-11-06 10:41:14 -06:00
Travis McLane
8dbbdc4bf2 [v3 linux] sanitize appId more thoroughly 2023-11-06 10:41:14 -06:00
Light
7c15f9098c
Add extra check for GPU device info for null pointer (#3032)
* add check for GPU device info

* add changelog note

* change return to continue

* Small refactor

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-11-06 20:51:03 +11:00
Lea Anthony
36a3e90b1d
Small doc fixes 2023-11-05 19:34:22 +11:00
Lea Anthony
3882201434
Add mkdocs-static-i18n dep 2023-11-05 18:13:20 +11:00
Lea Anthony
857bf40072
Update parser and bindings generation
Update tests
2023-11-05 18:06:11 +11:00
Lea Anthony
075eb1fa3f
Update parser and bindings generation
Update tests
2023-11-05 18:02:36 +11:00
Lea Anthony
dbb7c6e7d0
Update docs workflow 2023-11-05 15:05:44 +11:00
Lea Anthony
947d429688
Build status table from CSV 2023-11-05 14:42:32 +11:00
Lea Anthony
f49d42678b
Add todo project list 2023-11-03 15:41:17 +11:00
Lea Anthony
f28c9515ad
Update installation instructions 2023-11-02 20:53:59 +11:00
Travis McLane
c6ecbd56e5 [v3 examples/bindings] correct binding output + example
- disable output of `import <model> from models` line
- update README to generate bindings in usable location for HTML
- update HTML to reference bindings correctly
- update javascript to call and process the bound Greet function
2023-10-31 17:24:00 -05:00
Travis McLane
144567410d [v3 linux] disable noisy onKeyPressEvent handler 2023-10-31 17:22:36 -05:00
Travis McLane
1b850662ed [v3 example/bindings] enable DevTools 2023-10-31 17:15:16 -05:00
Travis McLane
c7c4cacc29 [v3 linux] auto-toggle devtools (if enabled) 2023-10-31 17:15:16 -05:00
Travis McLane
7e63355353 [v3 linux] correct type of window 2023-10-31 17:08:12 -05:00
Travis McLane
01652c7940 [v3 linux] update devtools behavior to match win/mac 2023-10-31 14:02:36 -05:00
Travis McLane
b379e3b0eb Revert "Merge branch 'linux-keycodes' into v3-alpha"
This reverts commit a2fde7f2c3, reversing
changes made to 985c5bf8e2.
2023-10-31 11:09:11 -05:00
Travis McLane
a2fde7f2c3 Merge branch 'linux-keycodes' into v3-alpha 2023-10-30 10:31:11 -05:00
Atterpac
2beb452207 Update changelog.md 2023-10-30 10:28:24 -05:00
Michael Capretta
73384a562b Add Linux Keycodes that match existing strings for keybinds 2023-10-30 10:27:21 -05:00
Lea Anthony
985c5bf8e2 [darwin] Support Ignore mouse events
[darwin] Support applicationSupportsSecureRestorableState
Update video example
2023-10-29 20:29:45 +11:00
Lea Anthony
daec8a9a64
Update installation instructions 2023-10-29 15:40:06 +11:00
Lea Anthony
f88a7a6f99
Update installation instructions 2023-10-29 15:34:12 +11:00
Lea Anthony
dc16d145c2
Update installation instructions 2023-10-29 15:31:26 +11:00
Lea Anthony
8432ddc2a8
Update installation instructions 2023-10-29 15:25:34 +11:00
Lea Anthony
d072393149
Add another CNAME file (thanks ghpages :/) 2023-10-29 10:03:33 +11:00
Lea Anthony
a8e95bf7f1
Add another CNAME file (thanks ghpages :/) 2023-10-29 09:57:38 +11:00
Lea Anthony
1735bdc9a2
Update roadmap link 2023-10-29 09:49:30 +11:00
Lea Anthony
f00685d592
Add CNAME 2023-10-29 09:48:37 +11:00
Lea Anthony
ee194f3e46
Update docs 2023-10-29 09:39:47 +11:00
Lea Anthony
82a9c5b1dd
Update docs 2023-10-28 17:26:29 +11:00
Lea Anthony
fdd8875986
Update docs 2023-10-28 15:54:42 +11:00
Lea Anthony
3b50e0cbc5
Update docs 2023-10-28 15:44:36 +11:00
Lea Anthony
fb7fda2256
Upgrade mkdocs 2023-10-28 12:22:21 +11:00
Lea Anthony
d9beb6126e
Add CNAME 2023-10-28 11:54:03 +11:00
Travis McLane
a81581129a [v3 linux] menu bitmap update handling 2023-10-27 16:45:10 -05:00
Travis McLane
e95a91861a [v3 linux] noop: cleanup 2023-10-27 16:45:10 -05:00
Travis McLane
fa5948f40e use windowId to avoid miscompilation 2023-10-27 15:46:25 -05:00
Travis McLane
ad4c8aacfb [v3 linux] keypress handling stubout 2023-10-27 14:41:22 -05:00
Travis McLane
afbc09f1e7 [v3 linux] menuItem.setBitmap support 2023-10-26 16:56:06 -05:00
Travis McLane
1a1e5b743a [v3 linux] dbus menu icon support 2023-10-26 16:56:06 -05:00
Lea Anthony
24853a7e3b
Add events README.md 2023-10-25 20:17:41 +11:00
Lea Anthony
1ce83913bd
Fix permissions build issues 2023-10-25 20:06:53 +11:00
Lea Anthony
1650e26da7
[windows] dnd fixes 2023-10-25 20:04:00 +11:00
Travis McLane
bc01fd8ea3 [v3 windows] hide go-webview2 from non-windows 2023-10-24 15:40:58 -05:00
Lea Anthony
3422c40e19
[windows] ignore mouse events 2023-10-23 20:58:55 +11:00
Lea Anthony
e661052c89
[windows] support permissions 2023-10-23 20:50:25 +11:00
Lea Anthony
ff08a5ca2b
[windows] html fullscreen support 2023-10-23 20:49:21 +11:00
5aaee9
f8250fb0d8
darwin: add event ApplicationShouldHandleReopen (#2991)
* darwin: add ApplicationShouldHandleReopen

* docs: update changelog with mr id

* events: update id

* feat: always return true

* Merge v3-alpha and regenerate events

* darwin: allow pass nsdirectory to processApplicationEvent

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-22 21:12:12 +11:00
Lea Anthony
d1c3f8af7a [darwin] Fix menu icon 2023-10-22 14:34:04 +11:00
Lea Anthony
36b4b3695b
Initial menu item bitmap support 2023-10-22 09:32:04 +11:00
Atterpac
fb17ec8064
Allow Wails3 Doctor recognize globally installed apt packages (#2972)
* Fixes doctor bug for apt package manager

* Actually fix it

* Pad the text " all" 

Adding a space to ensure checking against "all" doesn't always catch "install" or "not-installed" etc

* Update changelog.md

Doctor Apt Verify

---------

Co-authored-by: atterpac <michael@atterpac.dev>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-21 16:32:50 +11:00
Lea Anthony
51f52656cc
Update go-webview2 version 2023-10-21 12:02:19 +11:00
Travis McLane
18746c7819
V3 alpha linux dbus (#2996)
* [v3 linux/systray] dbus generation

* [v3 linux] systemtray dbus implementation

* [v3] add 'id' for MenuSeparator

This is needed in order to have a unique value for all
menuItem(s) such that the Linux implementation doesn't have to
generate new identifiers.
Allowing the reuse keeps a 1-1 mapping in place without any extra effort.

* [v3 example/systray] add radio group to example

* [v3 linux] stub out ExportStatusNotifierItem callbacks

Can only seem to get the `SecondaryActivate` to fire when doing a
3-finger click!  I was expecting a right-click interaction to trigger it.
2023-10-21 11:39:46 +11:00
Lea Anthony
8463c01123
[windows] Drag-n-drop support 2023-10-21 11:21:10 +11:00
Lea Anthony
8e0671306a
Mac examples + readme updated 2023-10-17 20:25:36 +11:00
Lea Anthony
131a6da554
Fix resize on windows 2023-10-16 19:29:42 +11:00
Lea Anthony
59273fcdab
Add basic hardware detection to wails doctor 2023-10-15 20:02:29 +11:00
Lea Anthony
7795a2a46f
Fix modifier processing on windows.
Move info logs to debug.
2023-10-15 13:53:31 +11:00
Lea Anthony
2269f64b0a
Fix build output name 2023-10-15 12:52:13 +11:00
Lea Anthony
439da97573
Fix go version 2023-10-15 12:48:11 +11:00
Lea Anthony
2b478a4608
More workflow improvements 2023-10-15 12:42:49 +11:00
Lea Anthony
3b95725f09
Try caching in workflow 2023-10-15 10:48:42 +11:00
Lea Anthony
3a23ad1382
Fix example building. Update workflow 2023-10-15 10:43:39 +11:00
Lea Anthony
61a7f1fba5
Reformat changelog 2023-10-15 09:33:48 +11:00
5aaee9
a8641672cd
[v3] fix deadlock when quit (#2982)
* fix: dead lock when quit

* docs: update changelog
2023-10-14 20:34:00 +11:00
Lea Anthony
320fc20461
Add example build test windows fix 2023-10-12 21:18:42 +11:00
Lea Anthony
69f05c39ec
Add example build test 2023-10-12 21:15:41 +11:00
Lea Anthony
e55ffedc35
Add example build test 2023-10-12 21:13:53 +11:00
Lea Anthony
0577fefd75
Remove Browser plugin. Update plugin example 2023-10-12 08:41:18 +11:00
Lea Anthony
02713670c9
Custom icon shows app icon 2023-10-11 21:29:40 +11:00
Lea Anthony
e6de878395
Move server plugin to experimental dir 2023-10-11 20:25:56 +11:00
Lea Anthony
4c75b288bb
Add BrowserOpenURL and BrowserOpenFile to App.
Better WML assets for demo
Fix dialog responses.
Add `wml-openurl`
Rename: data-wml -> wml
Fix Alpha Feedback URL
2023-10-11 20:23:59 +11:00
Travis McLane
263e1b527a [v3 linux] lower signal memory usage
- drop the gtkSignalHandlers map entirely (wasn't used)
- use 'uint' for mapping signal IDs to MenuItem
- store and retrieve the menuitem identifier to/from the menu item widget
2023-10-10 12:38:10 -05:00
Lea Anthony
3d88bf8795
Fix context menu issues.
Fix WindowID for requests on windows.
Add `Windows.ApplicationStarted` event
2023-10-10 21:48:47 +11:00
Lea Anthony
740b2b0979
Fix windows icon for about box.
Add NewRGBA and NewRGB methods.
Added README.md to all examples.
Add roadmap.md to docs
2023-10-09 20:56:19 +11:00
Lea Anthony
2b843fc12e
Update contextmenus/dev example 2023-10-09 17:38:46 +11:00
Lea Anthony
473cf1cae3
Update window example 2023-10-09 17:38:22 +11:00
Lea Anthony
65d4266400
Update systray example 2023-10-09 17:38:11 +11:00
Lea Anthony
8d5b86fff7
Update dialogs example 2023-10-09 17:38:03 +11:00
Lea Anthony
92843c8237
Update clipboard example 2023-10-09 17:37:50 +11:00
Lea Anthony
13b588b555
Update build example 2023-10-09 17:37:40 +11:00
Lea Anthony
839a9ff498
Update bindings example 2023-10-09 17:37:21 +11:00
Lea Anthony
ef8c16d773
Fix bindings help text 2023-10-09 17:36:58 +11:00
Lea Anthony
602fafafea
[windows] Better corner detection for frameless windows 2023-10-09 17:36:32 +11:00
Lea Anthony
83ed7fd2df
[windows] Fix production logger. Add alpha assets 2023-10-09 17:36:06 +11:00
Lea Anthony
f07e4093be
[windows] Don't show menu for frameless window 2023-10-09 17:35:28 +11:00
Lea Anthony
bf13afd895
[windows] Fix dialog icon 2023-10-09 17:34:56 +11:00
Lea Anthony
9ffc06d42e
Update Task to v3.31.0. Update deps. 2023-10-09 10:39:09 +11:00
Lea Anthony
ebe91ba11d [darwin] Disable listener caching. Run execJS on main thread. 2023-10-07 20:08:22 +11:00
Lea Anthony
48aef46f57 [darwin] Quick event fix 2023-10-07 12:28:50 +11:00
Lea Anthony
c77c823c3c Revert "[linux] Implement events"
This reverts commit 8ddd29d285.
2023-10-07 12:21:49 +11:00
Travis McLane
ccccea1e50 [v3] go mod tidy 2023-10-06 15:03:36 -05:00
Travis McLane
a6163849c6 [v3 linux] match windows transparency logic 2023-10-06 14:38:38 -05:00
Travis McLane
130aab3598 [v3 linux] systray stubout
slim down the printouts and fix compilation
2023-10-05 17:25:45 -05:00
Travis McLane
78b85ce0cc [v3 linux] systray not implemented 2023-10-05 14:04:13 -05:00
Travis McLane
dbcf65b2d6 Revert "Merge branch 'v3-alpha-linux-systray' into v3-alpha"
This reverts commit 92b26488da, reversing
changes made to 1c48d567e1.
2023-10-05 08:34:12 -05:00
Lea Anthony
d8e27aa5f9
Fix svelte template 2023-10-05 21:12:01 +11:00
Lea Anthony
ce6d587771
Fix multiple window weirdness. Update deps 2023-10-05 20:54:12 +11:00
Lea Anthony
81d7bc2d68
Fix vue templates 2023-10-05 20:13:50 +11:00
Lea Anthony
a49350f300
[windows] Remove unused code. 2023-10-05 20:12:28 +11:00
Lea Anthony
9ac6359e56
Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha 2023-10-05 19:19:26 +11:00
Lea Anthony
5958d9c646
[windows] Serve assets async 2023-10-05 19:18:32 +11:00
Lea Anthony
9b88c8afda
Merge branch 'master' into v3-alpha
# Conflicts:
#	v2/internal/app/app_devtools.go
#	v2/internal/app/app_devtools_not.go
2023-10-04 20:23:23 +11:00
Lea Anthony
1b71fef89f
Update v3 website frontpage 2023-10-04 20:22:20 +11:00
Lea Anthony
8ddd29d285
[linux] Implement events 2023-10-03 08:37:11 +11:00
Lea Anthony
dc8cbcf410
[darwin] Refactor events into mac specific files 2023-10-03 08:33:58 +11:00
Travis McLane
757a4383e6 [v3] send dialog results over channels 2023-10-02 11:07:12 -05:00
Travis McLane
7c98ee329a [v3] move linux clipboard logic to linux_cgo 2023-10-02 11:07:12 -05:00
Lea Anthony
9d615463f4
[linux] support clipboard 2023-10-02 20:47:04 +11:00
Lea Anthony
aea0db5919
[linux] Fix packagemap 2023-09-30 21:17:30 +10:00
Lea Anthony
fc593d90cf
Export Package map 2023-09-30 21:09:35 +10:00
Lea Anthony
2524f7b5a0
Remove old KitchenSink example 2023-09-30 21:09:10 +10:00
Lea Anthony
5a0cb1baef
Fix svelte-ts template 2023-09-30 21:04:00 +10:00
Lea Anthony
255690eee0 [darwin] Add webview preferences 2023-09-30 15:23:56 +10:00
Lea Anthony
86b6e10620
[darwin]AlwaysOnTop: NSStatusWindowLevel -> NSFloatingWindowLevel 2023-09-30 14:27:48 +10:00
Travis McLane
b757292211 [v3 darwin] use NativeWindowHandle 2023-09-29 12:13:51 -05:00
Travis McLane
af54419a0b [v3] use concrete *WebviewWindow 2023-09-29 11:40:43 -05:00
Travis McLane
7b84b1c79c [v3] Window fallout 2023-09-28 17:17:11 -05:00
Travis McLane
d047c22526 [v3] change window back to *WebviewWindow 2023-09-28 17:10:17 -05:00
Travis McLane
6feab70a72 [v3 workflow] add libayatana dependency 2023-09-28 17:00:33 -05:00
Travis McLane
5e1b5ca4e8 [v3] typo - missing comma 2023-09-28 16:55:52 -05:00
Travis McLane
1726cdb0ad [v3] add ubuntu-latest to workflow 2023-09-28 16:48:23 -05:00
Travis McLane
2b2828ea41 [v3] goformat fixes 2023-09-28 16:47:04 -05:00
Travis McLane
29859ceedf [v3] correct return types for CurrentWindow
this shouldn't have been changed to Window
2023-09-28 16:46:19 -05:00
Travis McLane
8e2527ad35 [v3 linux] implement single_instance plugin 2023-09-28 15:53:28 -05:00
Travis McLane
92b26488da Merge branch 'v3-alpha-linux-systray' into v3-alpha 2023-09-28 14:52:12 -05:00
Travis McLane
efa67cb01c [v3 linux] systray implementation
Linux requires a `gtk_menu_bar` for a gtk_window to display a menu.
For the `systray` a `gtk_menu` is needed instead.
This change creates the correct type of `impl` for the `Menu`
depending on how it is being used.
2023-09-28 14:50:38 -05:00
Travis McLane
71fc222059 [v3 linux] systray: cleanup + add basic menu 2023-09-28 13:31:09 -05:00
Travis McLane
fa6adad4ab [v3 linux] wip: systray implementation 2023-09-28 13:31:09 -05:00
Travis McLane
1c48d567e1 [v3] NewWebviewWindow* return *WebviewWindow 2023-09-28 13:30:47 -05:00
Travis McLane
2c3216ba36 Merge branch 'v3-alpha-plugin-server' into v3-alpha 2023-09-28 12:15:11 -05:00
Travis McLane
74e2a7e225 [v3 examples] add server plugin to 'plugins' example 2023-09-28 12:14:54 -05:00
Travis McLane
ff2c92451d [v3] go.* update 2023-09-28 12:14:54 -05:00
Travis McLane
2a83402d4a [v3 example/server] initial implementation 2023-09-28 12:14:54 -05:00
Travis McLane
2449b473c0 [v3 plugin/server] initial implementation 2023-09-28 12:14:54 -05:00
Travis McLane
60c44c44ff [v3 runtime] updated javascript 2023-09-28 12:14:54 -05:00
Travis McLane
7e1d685167 [v3 js] add and send x-wails-client-id
The constant x-wails-client-id is generated once on startup and then
sent with each request to the Wails host.  It is used primarily by
the server plugin to distinguish different remote sessions.
2023-09-28 12:14:54 -05:00
Travis McLane
a9d4a393ba [v3 linux] add non-functional activeInstance implementation 2023-09-28 12:10:17 -05:00
Travis McLane
a0953fea93 [v3] Merge feature Window interface 2023-09-28 11:52:23 -05:00
Travis McLane
02d76835c9 [v3 linux] noop: remove spurious print 2023-09-28 11:48:46 -05:00
Travis McLane
dfe03f1347 [v3] WailsEvent expose ToJSON 2023-09-28 11:39:44 -05:00
Travis McLane
c87489adf3 [v3] implement Window interface 2023-09-28 11:39:39 -05:00
Travis McLane
a428a730d5 [v3] define Window interface
Define an interface that all Window(s) need to define.
Currently copies the WebviewWindow public api
2023-09-28 11:37:48 -05:00
Travis McLane
7f7c642339 [v3 linux] systray.openMenu 2023-09-28 10:02:44 -05:00
Travis McLane
03b79e9a67 [v3 linux] noop: handleKeyEvent skeleton 2023-09-27 16:31:59 -05:00
Travis McLane
56b0fcebba [v3 linux] use ifdef for APPLICATION_DEFAULT_FLAGS 2023-09-27 09:53:53 -05:00
Lea Anthony
d9a5130311
Use prettier on docs source 2023-09-25 20:56:29 +10:00
Lea Anthony
4663a45e59
Add raw API docs 2023-09-25 20:50:53 +10:00
Lea Anthony
fb820bcdad
Add some more API docs. Small refactors. 2023-09-24 17:23:24 +10:00
Lea Anthony
31c167b412
Add some more API docs. 2023-09-24 17:03:42 +10:00
Lea Anthony
7cdab16ba9
Add API docs. Do small refactors 2023-09-24 08:57:40 +10:00
Lea Anthony
05262134ca [darwin] Add systray.OpenMenu 2023-09-21 19:24:30 +10:00
Lea Anthony
fe48b9d03d
[windows] Add systray.OpenMenu 2023-09-21 19:14:44 +10:00
Lea Anthony
013ec1d726
Fix compiler error. Add test. 2023-09-21 06:33:08 +10:00
Travis McLane
27b4a984d5 [v3] process pointer and non-pointer receiver functions 2023-09-20 15:09:15 -05:00
Travis McLane
d6b6111395 noop: import sort 2023-09-20 15:09:15 -05:00
Lea Anthony
af8ee6703e [darwin] Support keybindings 2023-09-20 21:34:50 +10:00
Lea Anthony
793191a479
Initial key binding support 2023-09-17 20:48:30 +10:00
Lea Anthony
efc86c1056
Delete wails binary 2023-09-16 15:00:20 +10:00
Lea Anthony
39d44d2644
Merge latest website changes 2023-09-16 14:58:24 +10:00
Lea Anthony
9584a2ce5a
Merge latest v2 changes 2023-09-16 14:56:23 +10:00
Lea Anthony
95b8ceb87a
Merge remote-tracking branch 'origin/master' into v3-alpha 2023-09-16 14:44:57 +10:00
ALMAS
37b99b9cb8
Update webview_window.go (#2912) 2023-09-16 07:20:49 +10:00
Lea Anthony
86354e9fc0 Support IsDarkMode in application event context. Fix bug with event mapping. 2023-09-15 20:10:09 +10:00
Lea Anthony
b49f135e31
Add context to application/common events 2023-09-15 17:12:35 +10:00
Travis McLane
fff266f50d [v3 linux] remove unused dialog callbacks
If it turns out these are needed in the future
we can add them back in then.
2023-09-13 13:12:22 -05:00
Travis McLane
7cfea7c22c [v3 linux] file/directory dialogs 2023-09-13 13:12:22 -05:00
Travis McLane
6141e5a8ce [linux v3] purego: updates
- file/directory chooser dialog logic
- add name + css so that menu isn't transparent
2023-09-13 13:12:22 -05:00
Lea Anthony
ed58949d24
try logging in goroutine 2023-09-13 16:47:14 +10:00
Lea Anthony
c1d85bd3d9
Add generate constants tool 2023-09-13 16:45:19 +10:00
Lea Anthony
8d3324465e
Revert flags change 2023-09-13 16:11:23 +10:00
Lea Anthony
8c72746edb
Update log plugin to have log levels. 2023-09-13 09:45:26 +10:00
Lea Anthony
ea3509d2e7
Add LogLevel application option. Update log plugin to have log levels. 2023-09-13 09:44:37 +10:00
Lea Anthony
bb3a0cc54f
Add WebviewWindow.IsFocused() 2023-09-13 08:57:20 +10:00
Travis McLane
d808654d99 [v3 linux] update purego replace 2023-09-11 17:27:21 -05:00
Travis McLane
a6cfdbb403 [v3 linux] const -> var 2023-09-11 17:26:59 -05:00
Travis McLane
2f7c6834d0 [v3 linux] use invokeSync 2023-09-11 17:12:57 -05:00
Travis McLane
ebdd57a7c4 remove cmd/wails/wails binary 2023-09-11 17:12:57 -05:00
Lea Anthony
4ff6d74054
Remove plain template 2023-09-09 20:08:26 +10:00
Lea Anthony
0d8b4aafd5
Better vanilla taskfile. Better asset generation at init. 2023-09-09 17:31:48 +10:00
Lea Anthony
0cca7e9189
Fix syso tests. Add precommit task 2023-09-09 16:27:51 +10:00
Lea Anthony
a5812578c5
Add generate build-assets. Update Taskfile for vanilla template 2023-09-09 10:25:56 +10:00
Lea Anthony
350b411afe
Update what's new section 2023-09-08 20:18:50 +10:00
Lea Anthony
9ca86c6093
Fix template versions 2023-09-08 18:51:39 +10:00
Lea Anthony
01729ae22a
Add what's new section 2023-09-08 18:45:42 +10:00
Lea Anthony
9196dc2216
Remove ci flag 2023-09-08 14:49:50 +10:00
Lea Anthony
b925335bbb
Fix tests 2023-09-08 14:37:07 +10:00
Lea Anthony
965f939967
Fix parser/generator tests 2023-09-08 12:03:55 +10:00
Lea Anthony
00feccbb77
Add MACOSX_DEPLOYMENT_TARGET to taskfiles 2023-09-08 11:23:38 +10:00
Lea Anthony
b6fc66ba0d
Improve workflow 2023-09-08 11:09:32 +10:00
Lea Anthony
c40debc0e9
Disable linux tests 2023-09-08 11:04:59 +10:00
Lea Anthony
3b31d70865
Update doc dependencies 2023-09-08 11:00:15 +10:00
Lea Anthony
afa8b62de7
Update doc dependencies 2023-09-08 10:57:47 +10:00
Lea Anthony
70fd15de2d
fix workflow 2023-09-08 10:42:13 +10:00
Lea Anthony
c54d330f89
fix workflow 2023-09-08 10:39:29 +10:00
Lea Anthony
4028560d12
fix workflow 2023-09-08 10:37:45 +10:00
Lea Anthony
3c28c28623
fix workflow 2023-09-08 10:36:48 +10:00
Lea Anthony
a958fa06e7
Update docs 2023-09-08 10:31:16 +10:00
Lea Anthony
4d39e9e15a
Update v3-docs.yml 2023-09-08 10:27:32 +10:00
Lea Anthony
679ec49e64
add v3 docs workflow 2023-09-08 10:24:01 +10:00
Travis McLane
d98e1d3693 [v3 linux] Packagemap -> packagemap 2023-09-07 12:16:20 -05:00
Lea Anthony
be3b7d754e
add netlify config 2023-09-07 21:55:45 +10:00
Lea Anthony
ae524c4f84
add workflow for v3 alpha 2023-09-07 21:37:50 +10:00
Lea Anthony
d390cac8db
Fix EnableFraudulentWebsiteWarnings for mac 2023-09-07 21:33:11 +10:00
Lea Anthony
17e20ab029
[v3] Fix requirements.txt 2023-09-07 07:52:18 +10:00
Lea Anthony
34b9b9b508
Add status table to docs. 2023-09-06 20:59:45 +10:00
Lea Anthony
47fd06a445
More doc changes 2023-09-06 19:15:52 +10:00
Lea Anthony
b140ce546f Add CPU detection in mac 2023-09-05 23:14:18 +10:00
Lea Anthony
08ec2beb7c
Move menu to Windows window options. 2023-09-05 22:27:47 +10:00
Lea Anthony
5833f0f109
More docs. 2023-09-05 18:26:10 +10:00
Lea Anthony
eb2ad258ed
More docs. 2023-09-04 22:51:21 +10:00
ALMAS
708aef53e4
[v3] completing missing build tags (#2884)
* Update image.go

* Update popupmenu.go
2023-09-04 22:43:28 +10:00
Lea Anthony
e893c1c205
More docs. 2023-09-04 22:40:40 +10:00
Lea Anthony
3e74255127
Update docs. 2023-09-04 21:27:59 +10:00
Lea Anthony
b8d7eed607
Add awful CallByName method and update docs with warning. 2023-09-04 21:19:10 +10:00
Lea Anthony
8eb62fb483
Update bindings example 2023-09-04 21:01:00 +10:00
Lea Anthony
ee67bff9e3
Docs update 2023-09-04 20:50:32 +10:00
Lea Anthony
21e47dcccf
Fix version in debug build 2023-09-04 19:51:48 +10:00
Lea Anthony
38ddcf59f8
Support linux in doctor 2023-09-04 19:46:07 +10:00
Lea Anthony
4a62b6a5c7 Support Mac in wails doctor 2023-09-03 10:30:31 +10:00
Lea Anthony
6afbcb69f3
Improve doctor 2023-09-03 10:09:16 +10:00
Lea Anthony
4bb522d303
Add doctor. 2023-09-03 08:42:12 +10:00
Lea Anthony
f107173a73
Update README.md 2023-09-03 06:53:10 +10:00
Lea Anthony
eb5aff755f
Update docs 2023-09-02 15:12:35 +10:00
Lea Anthony
2384ae0819
Improve docs tooling 2023-09-02 09:10:35 +10:00
Lea Anthony
4a5663c1cb
Merge branch 'master' into v3-alpha 2023-09-02 08:38:48 +10:00
Travis McLane
9416e01042 [v3 linux] start_at_login initial implementation 2023-09-01 16:04:25 -05:00
Travis McLane
54fcacfed1 [v3 linux] correct transparency setting 2023-09-01 15:57:13 -05:00
Lea Anthony
69ac5caa4b
Fix production build 2023-09-01 22:06:43 +10:00
Lea Anthony
cecbc156d5
Update deps 2023-09-01 20:14:06 +10:00
Lea Anthony
8ca550cc9e
[v3] Add swipe gesture support 2023-08-30 20:57:12 +10:00
Lea Anthony
d44c8eba1c
[v3] Use system logger instead of println 2023-08-28 20:30:40 +10:00
Lea Anthony
6edd667bdf
[v3] Fix application runtime mappings 2023-08-28 20:29:25 +10:00
Vilsol
499ff50903
fix: use string formatting in gtk_message_dialog_new (#2865) 2023-08-28 19:34:24 +10:00
Lea Anthony
5e1f29eda3
[v3] Support //wails:methodID <uint32> directive in bound method comments. 2023-08-27 21:16:30 +10:00
Lea Anthony
e5571defb7
[v3] Support bound methodID aliases. Support []any for bindings generation. Use CallByID in bindings. 2023-08-27 20:39:35 +10:00
Lea Anthony
125d8a6f78
[v3] Update Task to v3.29.1. 2023-08-27 17:14:36 +10:00
Lea Anthony
21790dc3ee
[v3] Add CallByID method to runtime. 2023-08-27 16:59:18 +10:00
Lea Anthony
cdf48e0589
[v3] Fix bindings 2023-08-27 15:54:01 +10:00
Travis McLane
2f9f63771b [v3 examples] add README 2023-08-25 09:39:24 -05:00
Lea Anthony
93335b3843
[v3] Support ANSI label on Mac. Update example. 2023-08-25 06:53:08 +10:00
Travis McLane
f50c8f447e [v3 assetserver] cleanup logging
- remove type assertions
- update contentTypeSniffer to capture the status code
- move logic in ServeHTTP to serveHTTP
- wrap serveHTTP with ServeHTTP adding logging & duration calculation
2023-08-24 12:44:13 -05:00
Travis McLane
bd9f7deb98 [v3 linux] correct minimum zoom 2023-08-23 14:10:22 -05:00
Travis McLane
2171192934 [v3 linux] noop: remove println 2023-08-23 14:09:44 -05:00
Lea Anthony
3352ebef6e
[v3] Tidy up logging 2023-08-19 17:15:15 +10:00
Lea Anthony
2a51ddadfc
[v3] Tidy up plugin init 2023-08-19 17:09:38 +10:00
Lea Anthony
0745aea4d6
[v3] Move to integer call ids for bound methods. 2023-08-19 14:25:36 +10:00
Travis McLane
4804b34208
[v3 linux] api changes (#2830) 2023-08-19 06:12:34 +10:00
Lea Anthony
841289f1d1
[v3 windows] Support isDarkMode. Add common application event mapping 2023-08-18 19:50:57 +10:00
Lea Anthony
c367ef461e
[v3 windows] Support isDarkMode 2023-08-18 19:45:59 +10:00
Lea Anthony
ffed41553a [v3 mac] Add IsDarkMode to application and JS runtime. Add Common.ThemeChanged event 2023-08-18 17:36:14 +10:00
Lea Anthony
79deb37675
Fix return code in logging 2023-08-18 11:15:02 +10:00
Lea Anthony
77ca8fe9e6
Move webview2 options to application. Improve logging. 2023-08-18 11:06:25 +10:00
Lea Anthony
25e58edf28 [v3] Add dev example 2023-08-18 10:51:02 +10:00
Lea Anthony
0f2d19c56e Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha
# Conflicts:
#	v3/internal/operatingsystem/os.go
#	v3/internal/operatingsystem/os_darwin.go
2023-08-18 10:36:01 +10:00
Lea Anthony
8bde3d7522 [v3 mac] Improved operating system detection 2023-08-18 10:34:32 +10:00
Lea Anthony
c169d26d95 [v3] Port operating system detection 2023-08-18 10:24:45 +10:00
Lea Anthony
946a4c56a0 [v3 mac] Better logging 2023-08-18 09:58:43 +10:00
Lea Anthony
23e87e0ad7
Add dev tasks to Taskfile template 2023-08-15 21:48:04 +10:00
Lea Anthony
7d678154c6
Example prod/debug options 2023-08-15 21:40:50 +10:00
Lea Anthony
0b9fec3f87
Add checkport tool for checking open ports 2023-08-15 21:40:01 +10:00
Lea Anthony
763c7708f4
Fix HMR. Better logging. 2023-08-15 20:19:02 +10:00
Lea Anthony
5f2c1f4534
Remove optional prod options - use build tags instead 2023-08-15 20:19:02 +10:00
Lea Anthony
3ac557ccb1
[v3] plugin.toml -> plugin.yaml 2023-08-15 06:39:55 +10:00
Lea Anthony
e6c691a376
Support external asset server 2023-08-14 20:49:09 +10:00
Lea Anthony
ee8eb001c2
Merge branch 'master' into v3-alpha
# Conflicts:
#	v2/internal/frontend/desktop/windows/go-webview2/webviewloader/env_create.go
2023-08-14 18:08:52 +10:00
Lea Anthony
db836b7a48
Move assetserver to internal 2023-08-14 08:31:55 +10:00
Lea Anthony
543b18dd54
Revert v3 changes in v2 asset server 2023-08-14 08:28:32 +10:00
Lea Anthony
ec0731d5d8
Use slog.Logged in assethandler_external.go. Refactor runtime handler. 2023-08-14 08:28:31 +10:00
Lea Anthony
cc5c7d1d29
Log git hash if using replaced module 2023-08-14 08:28:25 +10:00
Lea Anthony
e79c1b7ea3 Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha 2023-08-13 20:43:07 +10:00
Lea Anthony
6cbead5bfe
Improved logging++ 2023-08-13 16:52:39 +10:00
Lea Anthony
429bb2bf17
Refactor application creation. Remove internal logger package. 2023-08-13 15:28:30 +10:00
Lea Anthony
c03c41cb21
Add version command 2023-08-13 15:13:01 +10:00
Lea Anthony
ee29faecbf
Log if native Go webview loader is used 2023-08-12 16:36:08 +10:00
Lea Anthony
d1d0105276
Remove jsonBindings option. Only add ipc in debug mode. 2023-08-12 14:57:01 +10:00
Lea Anthony
1059e36b52
Run go mod tidy on project creation. Use better method of relative module location. 2023-08-12 14:32:52 +10:00
Lea Anthony
15f602f867
Move v2 assetserver to v3 2023-08-12 14:16:53 +10:00
Lea Anthony
13be4a333f
Move to slog logger for application and log plugin 2023-08-10 22:04:13 +10:00
Lea Anthony
2553fa1f74
Update templates to use Go 1.21 2023-08-10 21:32:18 +10:00
Lea Anthony
f0f5011484
Remove log from runtime (there's a plugin for that) 2023-08-10 21:29:42 +10:00
Lea Anthony
5671f3527b
Add ProductionOverrides option so any option can be overridden in production builds 2023-08-10 20:42:25 +10:00
Lea Anthony
adb26fa99f
Add Hook doc 2023-08-10 19:57:12 +10:00
Lea Anthony
805429a7c6
Support remote templates 2023-08-09 21:53:10 +10:00
Lea Anthony
39af86e59d
Improve project creation.
Add `template.json` to templates.
Update dependencies.
2023-08-09 21:30:06 +10:00
Lea Anthony
ecf970d6fe [v3 mac] ANSI systray label [WIP] 2023-08-05 14:04:49 +10:00
Lea Anthony
c9ce17a4d5
[v3] Fix Assets options in templates 2023-07-21 08:24:38 +10:00
stffabi
a6e279f0d3 [v3 panicHandler] Let the default go panic handler handle the panic if there's no panicHandler set in options 2023-07-15 23:57:19 +02:00
stffabi
842bc3733e [v3 windows] Fix missing panic stacktraces during message loop 2023-07-15 23:56:26 +02:00
Lea Anthony
5e76a5e76a [v3 mac] Fix event callback signatures 2023-07-12 21:29:01 +10:00
Lea Anthony
52c3c49f25
[v3] Add window close hook example 2023-07-12 21:27:58 +10:00
Lea Anthony
705239ad7d
[v3] Use WindowEvent rather than WindowEventContext 2023-07-12 20:50:01 +10:00
Lea Anthony
dc865404a9
[v3] Initial hooks implementation 2023-07-12 20:31:13 +10:00
Lea Anthony
ba7ab2e607
[v3 windows] Fix translucency. Update example. 2023-07-11 23:04:22 +10:00
Lea Anthony
d6cfe4414d
[v3 Windows] Add WebviewWindow.Flash() 2023-07-11 20:10:18 +10:00
Lea Anthony
ecbb135949
[v3] Update plugin.js 2023-07-10 20:56:07 +10:00
Lea Anthony
fcb98e6523
[v3] Update docs 2023-07-10 20:46:08 +10:00
Lea Anthony
e7e5597c95 [v3 mac] Fix right click. Slight refactor. 2023-07-10 20:44:30 +10:00
Lea Anthony
7f0479d8b4 [v3 mac] Fix right click menu when window attached. 2023-07-10 20:21:19 +10:00
Lea Anthony
f5c78f365d
[v3] Fix oauth bug. Added logout capability 2023-07-09 20:13:29 +10:00
Lea Anthony
1fc5f9b12d
[v3] Update readme for oauth plugin 2023-07-09 12:33:57 +10:00
Lea Anthony
3f55ce6dfc
[v3] Add provider methods, provide default login window, update readme for oauth plugin 2023-07-09 12:30:36 +10:00
Lea Anthony
1d562d3c27
[v3] Add oauth plugin 2023-07-08 22:56:25 +10:00
Lea Anthony
f3974deb88
[v3] Add Get for application instance 2023-07-08 22:51:33 +10:00
Lea Anthony
1945616328
[v3 windows] Fix WindowClose defaults 2023-07-08 20:28:19 +10:00
Lea Anthony
7db6604227
[v3 windows] Add HideOnTaskbar flag to WebviewWindow 2023-07-08 11:27:36 +10:00
Lea Anthony
12ce6c5ac3
[v3] Add systray.AttachWindow 2023-07-06 20:43:08 +10:00
Lea Anthony
5d9bc4ca81 [v3 mac] Fix systray example toggle 2023-07-05 21:09:48 +10:00
Lea Anthony
c0b4a3ff35
[v3] Fix generation of common events 2023-07-05 20:39:35 +10:00
Lea Anthony
f0bf8cd827
[v3 windows] Refactor events + mappings. Fix app.Quit(). Make systray example work slightly better 2023-07-05 20:35:45 +10:00
Lea Anthony
10144adf61
[v3 windows] Fix window lose focus events. 2023-07-04 20:43:21 +10:00
Lea Anthony
3efab5ba23
[v3 windows] Prevent window close events when the window was just opened 2023-07-04 20:01:06 +10:00
Lea Anthony
3d323ab9d2 [v3] Fix systray example. PositionWindow now takes an offset. EventApplicationDidResignActive -> EventApplicationDidResignActiveNotification 2023-07-04 19:26:00 +10:00
Lea Anthony
16ce9e562f [v3 mac] Window alignment to systray 2023-07-03 20:15:45 +10:00
Lea Anthony
90e66a7ad4
[v3] Add PanicHandler application option. 2023-07-03 19:52:50 +10:00
Lea Anthony
6b59216b32
[v3] Better panic support for methods run on mainthread 2023-07-01 21:56:21 +10:00
Lea Anthony
9764ba6334
[v3] Add CHANGELOG.md. Add instructions for PRs in DEVELOPMENT.md. 2023-07-01 11:09:09 +10:00
Mohamed Gharib
da5929ff34
[v3] Fix examples background color (#2750) 2023-07-01 10:55:10 +10:00
Mohamed Gharib
e419822c77
[v3] Fix default context-menu in selected disabled inputs (#2753)
* [v3] Fix default context-menu in selected disabled inputs

* [v3] Update Task to v3.27.1. Add `wails3 task -version` and `wails3 task taskfile:update`.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-07-01 10:52:55 +10:00
Lea Anthony
b62ce4440e
[v3 windows] Setup chromium sooner 2023-07-01 09:23:19 +10:00
Lea Anthony
3c81fb06e8
[v3 windows] Position window above systray 2023-06-30 21:17:50 +10:00
Lea Anthony
c27366a270
[v3] rename cli to wails3 2023-06-29 18:26:04 +10:00
Lea Anthony
5b6f6c1bff
[v3] Default context menu always shows in debug/dev 2023-06-28 18:47:39 +10:00
Lea Anthony
3fcac435b2
[v3] Support window events in JS. Fix ExecJS blocking issues. 2023-06-26 22:10:31 +10:00
Lea Anthony
03a3edcdc9
[v3] Create experimental plugin directory 2023-06-26 08:39:02 +10:00
Lea Anthony
5737b3cc7b [v3 mac] Fix merge issues 2023-06-25 10:13:20 +10:00
Lea Anthony
b898b79aaf
[v3 windows] Initial support for start_on_login plugin for windows 2023-06-24 21:12:24 +10:00
Lea Anthony
3827ca2d78
[v3] Move dialogs out of application 2023-06-24 13:57:51 +10:00
Lea Anthony
4de5e1b9f1
[v3] Add WindowUnFocus event 2023-06-24 13:23:50 +10:00
Travis McLane
eb18f02fd2 Merge branch 'v3-alpha-linux' into v3-alpha 2023-06-23 21:51:21 -05:00
Travis McLane
1a7d105917 [v3 linux] GetAbsolutePosition 2023-06-23 21:50:51 -05:00
Travis McLane
de5cff799e [v3 linux] setEnabled 2023-06-23 21:50:51 -05:00
Travis McLane
67cada78f6 [v3 linux] purego: windowGetRelativePosition 2023-06-23 21:50:51 -05:00
Travis McLane
5a40f25d03 [v3 linux] webview setAbsolutePosition 2023-06-23 21:50:51 -05:00
Travis McLane
1a09a8a4c8 [v3 linux/cgo] open/save file dialog stub 2023-06-23 21:50:51 -05:00
Travis McLane
daa0cf83d9 [v3 linux] noop: remove fmt.Println 2023-06-23 21:50:51 -05:00
Travis McLane
e92858f64d [v3 linux/purego] initial file/directory dialogs impl 2023-06-23 21:50:51 -05:00
Travis McLane
d52c26e82f [v3 linux] implement missing functions 2023-06-23 21:50:51 -05:00
Travis McLane
83900b03d4 [v3 linux] purego cleanup + dialog images 2023-06-23 21:50:51 -05:00
Travis McLane
c123430f22 [v3 linux] dialog fixes 2023-06-23 21:50:51 -05:00
Travis McLane
33e20cbc77 [v3 linux] allow menu setting on Linux 2023-06-23 21:50:51 -05:00
Travis McLane
e942312c4c [v3 menuitem] bug: avoid setting if nil 2023-06-23 21:50:51 -05:00
Travis McLane
de2e78b507 [v3 linux] purego implementation 2023-06-23 21:50:51 -05:00
Travis McLane
da4a7ac64b [v2] assetserver/webview purego implementation 2023-06-23 21:50:51 -05:00
Travis McLane
e44fbc26ba [v3 linux] STATUS.md 2023-06-23 21:50:51 -05:00
Travis McLane
bef454f950 [v3 linux] initial linux implementation 2023-06-23 21:50:51 -05:00
Travis McLane
94e1ec91ad Revert "Merge branch 'v3-alpha_linux' into v3-alpha"
This reverts commit b317efaf2c, reversing
changes made to 29b9c5200f.
2023-06-23 21:50:51 -05:00
Lea Anthony
56d11ab419
[v3] Update Wails API 2023-06-24 12:11:48 +10:00
Lea Anthony
c96cccab2e
[v3] Add Window AbsolutePosition/SetAbsolutePosition 2023-06-23 21:14:26 +10:00
Lea Anthony
989ef1b4a8
[v3] Update STATUS.md 2023-06-23 20:50:54 +10:00
Lea Anthony
45cfbe917e
[v3] Position/GetPosition -> RelativePosition/GetRelativePosition 2023-06-23 20:49:27 +10:00
Lea Anthony
2e313005e0
[v3] Add window attachment for open/save dialogs. Fix filter bug. 2023-06-23 20:33:35 +10:00
Lea Anthony
722c3a653c
[v3] Allow message dialogs to be attached to windows. JS dialogs default attached. wml confirm dialog attached. 2023-06-23 20:19:29 +10:00
Lea Anthony
76672facfe
[v3] Add window Enabled method. Fix dialog attachment 2023-06-23 19:48:04 +10:00
Lea Anthony
8f075b5d8d [v3] Fix merge issues 2023-06-22 19:56:35 +10:00
Lea Anthony
b317efaf2c Merge branch 'v3-alpha_linux' into v3-alpha
# Conflicts:
#	v3/STATUS.md
#	v3/examples/menu/main.go
#	v3/go.mod
#	v3/pkg/application/application.go
#	v3/pkg/application/webview_window.go
2023-06-22 19:46:10 +10:00
Lea Anthony
29b9c5200f
[v3] Update context menu example. Allow menu for disabled/read only iputs 2023-06-21 20:21:10 +10:00
Lea Anthony
4d2b4b4ee7
[v3] Update dev guide. Remove implLock. 2023-06-21 19:37:39 +10:00
Lea Anthony
9f8f095a78
[v3] Update dev guide. 2023-06-21 19:23:14 +10:00
Lea Anthony
59c09ebee1
[v3] Better default context menu. Started dev guide. 2023-06-21 19:21:41 +10:00
Lea Anthony
5f81a87912
[v3] Add smart context menu example 2023-06-20 21:35:41 +10:00
Lea Anthony
7f6151d573
[v3] Enable default context menu for certain elements. Use CSS to customise. 2023-06-20 21:11:37 +10:00
Lea Anthony
9816960995
[v3] Support "--default-contextmenu" style. Fix URL handling in Windows. 2023-06-20 19:44:01 +10:00
Lea Anthony
3355d5f0af
[v3] Add EnableDevTools option 2023-06-20 08:49:25 +10:00
Lea Anthony
ab38b20444
[v3] Status Update 2023-06-20 08:36:39 +10:00
Lea Anthony
f278229179 Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha 2023-06-20 08:12:42 +10:00
Lea Anthony
552390fb84 [v3 mac] Tidy up 2023-06-19 17:53:16 +10:00
Lea Anthony
68573cdc48
[v3 windows] Focus webview on Show/Restore/Maximise/FullScreen 2023-06-19 07:35:11 +10:00
Lea Anthony
cdf397aaa9 [v3 mac] Implement print() 2023-06-19 07:15:53 +10:00
Lea Anthony
ed27558011
[v3 windows] Add WebviewWindow.Print() 2023-06-18 17:13:07 +10:00
Lea Anthony
50387948df [v3 mac] Refactor drag to use common code 2023-06-18 12:24:44 +10:00
Lea Anthony
9b48cc1799 [v3 mac] Fix window drag example 2023-06-18 12:12:01 +10:00
Lea Anthony
86f2ac0e96 [v3 mac] Fix WindowShouldClose bug 2023-06-18 11:25:38 +10:00
Lea Anthony
1537a002cc
[v3] Add ShouldClose window method. Remove hideOnClose flag. 2023-06-18 11:12:53 +10:00
Lea Anthony
ae9b158b04
[v3 windows] improve main thread calls 2023-06-16 21:04:44 +10:00
Lea Anthony
72ec10b181 [v3 mac] Fix window close bug 2023-06-16 21:01:17 +10:00
Lea Anthony
eed4002a4a [v3 mac] Fix GetPosition Y coordinate 2023-06-16 20:54:53 +10:00
Lea Anthony
155e34c7a8 [v3 mac] Better main thread calls 2023-06-16 20:48:57 +10:00
Lea Anthony
22cc649e81
[v3 mac] translate window position for SetPosition 2023-06-16 20:20:18 +10:00
Lea Anthony
367ca745c3
[v3 windows] Fix frameless window drag. Add better resize for corners. 2023-06-15 21:06:14 +10:00
Lea Anthony
01e2e46e0d
[v3 windows] Support frameless drag. Add /wails/flags endpoint. 2023-06-15 19:08:08 +10:00
Lea Anthony
c03078ca16
[v3] Add capabilities, move to app-region css for drag, support native drag on Windows 2023-06-14 18:12:37 +10:00
Lea Anthony
49e62aebe3
[v3 windows] Support frameless drag 2023-06-13 17:44:07 +10:00
Lea Anthony
dc4daaebac
[v3 windows] Support title bar button events 2023-06-13 17:42:14 +10:00
stffabi
f855b30c9f [v3 windows] Consolidate WM_SIZE/WM_SIZING message handling 2023-06-12 08:26:09 +02:00
stffabi
b614e2b100 [v3 windows] An initially hidden window should show chromium when it is getting unhidden 2023-06-12 05:41:55 +02:00
stffabi
eafbbab233 [v3 windows] Do not Hide/Show chromium on every load of the frontend 2023-06-12 05:12:49 +02:00
Lea Anthony
72a4e9cf6e
[v3] Update STATUS.md 2023-06-12 10:46:31 +10:00
Lea Anthony
1dbe100a43
[v3] Restore window example 2023-06-12 10:45:26 +10:00
Lea Anthony
287d3d066c
[v3] Update WML demo to include restore 2023-06-12 10:45:03 +10:00
Lea Anthony
9387d18e88
[v3 windows] Change how chromium redraw works 2023-06-12 10:44:33 +10:00
Lea Anthony
1600bcb1d0
[v3] Add Restore to JS runtime 2023-06-12 10:44:05 +10:00
Lea Anthony
2b2defb7c0
[v3 windows] Fix chromium redraw bug 2023-06-12 10:28:35 +10:00
Lea Anthony
6d786902eb
[v3] Add some common window events 2023-06-12 10:27:30 +10:00
Lea Anthony
286ce206f0
[v3 windows] Prevent crash when nulls in strings 2023-06-12 09:10:47 +10:00
Lea Anthony
7535f098bd
[v3 windows] Fix clipboard example 2023-06-11 11:57:47 +10:00
Lea Anthony
b517461fbe
[v3 windows] Fix screen example 2023-06-11 11:54:32 +10:00
Lea Anthony
ffbe67e21f
[v3 windows] Fix clipboard js runtime call 2023-06-11 11:47:50 +10:00
Lea Anthony
833671d30c
[v3 windows] Add clipboard support 2023-06-10 13:01:10 +10:00
Lea Anthony
ae691b8e52
[v3 windows] Small icon updates 2023-06-10 10:19:33 +10:00
Lea Anthony
2b56b7b6b9
[v3] Update status and log plugin readme 2023-06-09 20:44:24 +10:00
Lea Anthony
81a5380f67
[v3 windows] Handle null result from callbacks. Call results should respond on main thread. 2023-06-09 20:34:11 +10:00
Lea Anthony
7c45e3ac13
[v3 mac] Fixed drag 2023-06-09 17:00:07 +10:00
Lea Anthony
d1932c36ce
Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha
# Conflicts:
#	v2/internal/app/app_dev.go
#	v3/STATUS.md
#	v3/Taskfile.yaml
#	v3/examples/binding/go.mod
#	v3/examples/binding/go.sum
#	v3/examples/menu/main.go
#	v3/examples/window/main.go
#	v3/go.mod
#	v3/go.sum
#	v3/pkg/application/application_windows.go
#	v3/pkg/application/dialogs_windows.go
#	v3/pkg/application/menuitem_windows.go
#	v3/pkg/application/options_webview_window.go
#	v3/pkg/application/options_win.go
#	v3/pkg/application/popupmenu_windows.go
#	v3/pkg/application/systemtray_windows.go
#	v3/pkg/application/webview_window.go
#	v3/pkg/application/webview_window_windows.go
#	v3/pkg/events/events.go
#	v3/pkg/events/events.txt
#	v3/pkg/w32/constants.go
#	v3/pkg/w32/popupmenu.go
#	v3/pkg/w32/screen.go
#	v3/pkg/w32/typedef.go
#	v3/pkg/w32/user32.go
#	website/src/pages/changelog.mdx
2023-06-07 08:19:25 +10:00
Lea Anthony
adb7ddf8d2
[v3] Update go mod for plugins examples 2023-06-06 21:07:28 +10:00
Lea Anthony
3b0a57ca6d
[v3 plugins] Support single-instance on Windows 2023-06-06 21:06:52 +10:00
Lea Anthony
4ee75e93c9
[v3] Improve examples 2023-06-06 20:41:28 +10:00
Lea Anthony
ff218e5323
[v3 windows] Support systray.Destroy() 2023-06-06 20:40:56 +10:00
Lea Anthony
df0969d1c6
[v3 windows] Support About box. Improve app menu handling. 2023-06-06 20:40:38 +10:00
Lea Anthony
23d7ac0e58
[v3 windows] Add MessageBoxIndirect 2023-06-06 20:39:24 +10:00
Lea Anthony
f9a87944cf
[v3] icons.ico -> icon.ico 2023-06-06 20:38:45 +10:00
Lea Anthony
eff456aa1a
[v3 windows] Improve systray locking 2023-06-06 20:38:01 +10:00
Lea Anthony
1ce07cd67c
[v3 windows] Update Taskfile in templates 2023-06-06 20:37:15 +10:00
Lea Anthony
fc7952ff3b
[v3 windows] Update examples. Add example table to STATUS.md 2023-06-05 20:34:52 +10:00
Lea Anthony
bb28bdf565
[v3 windows] Fix resize bug when using setSize 2023-06-05 20:33:45 +10:00
Lea Anthony
04d5842124
[v3 windows] Add package:windows task 2023-06-05 19:57:40 +10:00
Lea Anthony
1a12890556
[v3 windows] Add Webview2NavigationCompleted event. Support CSS + JS injection 2023-06-05 08:58:53 +10:00
Lea Anthony
d021d885ca
[v3 windows] Update STATUS.md 2023-06-04 14:08:27 +10:00
Lea Anthony
3433b8ce8f
[v3 windows] Support context menus 2023-06-04 14:05:19 +10:00
Lea Anthony
6092730acc
[v3 windows] Support Close and take into account HideOnClose option 2023-06-03 15:23:10 +10:00
Lea Anthony
ba4ffe4ecc
[v3 windows] Support devtools on startup 2023-06-03 15:19:38 +10:00
Lea Anthony
55b3e2d35a
[v3 windows] Update STATUS.md 2023-06-03 15:08:50 +10:00
Lea Anthony
6b926ec463
[v3 windows] Support setURL, execJS, reload, zoomIn/Out/Reset, get/setZoom, setHTML, 2023-06-03 15:03:26 +10:00
Lea Anthony
9b686b5417
[v3 windows] Support Application Menu, hiding menu items 2023-06-01 22:52:04 +10:00
Lea Anthony
82ec56bc7d
[v3 windows] Support GetScreens and GetPrimaryScreen 2023-06-01 22:52:03 +10:00
Lea Anthony
798e51d4d3
[v3 windows] Fix window ID processing 2023-06-01 22:52:02 +10:00
Lea Anthony
35c41552de
[v3 mac] Basic common event support. Taskfile refactor 2023-06-01 22:51:25 +10:00
Lea Anthony
19be7f61ac [v3 windows] Fix resizing. Add resize debouncing 2023-05-30 16:36:00 +08:00
Misite Bao
bbf0e8cdad chore: split Taskfile (#2654) 2023-05-30 16:35:59 +08:00
Lea Anthony
7e2d2a29a1 [v3 windows] Initial webview2 working 2023-05-30 16:33:34 +08:00
Lea Anthony
671dc2aa3a [v3 windows] Implement start x/y + parent window for dialogs 2023-05-30 16:33:34 +08:00
Lea Anthony
294a2c701e [v3] Update esbuild 2023-05-30 16:33:34 +08:00
Lea Anthony
01f03c552d [v3] Improve invoke 2023-05-30 16:33:33 +08:00
Lea Anthony
dc46154d94 [v3 mac] Support drag 2023-05-30 16:33:33 +08:00
Lea Anthony
87737c23eb [v3 mac] DisableWindowShadow -> DisableShadow 2023-05-30 16:33:33 +08:00
Lea Anthony
6e6f099a99 [v3 mac] Basic common event support. Taskfile refactor 2023-05-30 16:33:32 +08:00
Lea Anthony
4cb3321c39 [v3 mac] Update README 2023-05-30 16:32:02 +08:00
Lea Anthony
6a2343a1a0 [v3 mac] Add DisableWindowShadow option 2023-05-30 16:32:01 +08:00
Lea Anthony
f2d6dba2cf [v3 windows] initial dialog support. Refactor button callback name 2023-05-30 16:32:01 +08:00
stffabi
dd1ef7fae9 [v3 darwin] Add darwin identifier darwin only file 2023-05-30 16:32:01 +08:00
stffabi
527cff9ec3 [v3 darwin] Add darwin identifier to all C files of darwin 2023-05-30 16:32:00 +08:00
stffabi
ba150eccae [v3 windows] Add close handling: HideOnClose, QuitOnLastWindowClosed and DisableQuitOnLastWindowClosed 2023-05-30 16:32:00 +08:00
Travis McLane
fa74986f1e [v3 example] menu text toggle 2023-05-30 16:32:00 +08:00
Travis McLane
d1085b5bea [v3 example] add menuitem.Hidden / setHidden example 2023-05-30 16:31:59 +08:00
Travis McLane
4d0a14d2eb [v3 darwin] menuitem.setHidden implementation 2023-05-30 16:31:59 +08:00
Travis McLane
8c3439b733 [dialogs] remove default title
without this removal a user would have to call `SetTitle("")` in order to
erase the default if they desire a title-less dialog.
2023-05-30 16:31:59 +08:00
stffabi
a0534d527a [v3 application] Fix race conditions between starting a window/systray and starting the application
Make sure a window is never run before the windowCreated hooks have been executed.
2023-05-30 16:31:59 +08:00
Lea Anthony
a5b52f2795 [v3 windows] initial systray support 2023-05-30 16:31:58 +08:00
Lea Anthony
b526ebd679 [v3 mac] Update api. New template icon. 2023-05-30 16:31:58 +08:00
Lea Anthony
51b9315ae9 [v3 windows] update status 2023-05-30 16:31:58 +08:00
Lea Anthony
8edf44dc31 [v3 windows] New icons 2023-05-30 16:31:57 +08:00
Lea Anthony
9b7626e59e [v3 windows] Move icons to own package, systray dark mode icon, window.Focus(), 2023-05-30 16:31:57 +08:00
Lea Anthony
6dd092c7a9 [v3 windows] Rename systray callback handlers 2023-05-30 16:31:57 +08:00
Lea Anthony
46a0d467c0 [v3 windows] Dialogs to use invokeSync 2023-05-30 16:31:56 +08:00
Lea Anthony
e3b164ae93 [v3 windows] Systray callback handlers 2023-05-30 16:31:56 +08:00
stffabi
d8f58ab20f [v3 windows] Fix wndproc default case with WMMessageToString 2023-05-30 16:31:56 +08:00
stffabi
0de2bccd28 [v3 windows] Do not disable WndProc messaging for systray when updating icon 2023-05-30 16:31:55 +08:00
Lea Anthony
2eaf724710 [v3 windows] Fix systray icon size 2023-05-30 16:31:55 +08:00
Lea Anthony
58138ac09b [v3 windows] Initial systray support 2023-05-30 16:31:55 +08:00
Lea Anthony
143f090422 [v3] Use invokeSync for systray methods 2023-05-30 16:31:55 +08:00
Lea Anthony
f8f466ba7e [v3 windows] Support irregular shaped windows. Centered option. 2023-05-30 16:31:54 +08:00
Lea Anthony
cb28de47f8 [v3 windows] Support irregular shaped windows 2023-05-30 16:31:54 +08:00
stffabi
4ad2475ed6 [v3] Add some missing methods for darwin and windows 2023-05-30 16:31:54 +08:00
Travis McLane
0172078536 [w32] move windows specific code to impl file 2023-05-30 16:31:53 +08:00
Travis McLane
0bb1fb512a [w32] add missing build constraint 2023-05-30 16:31:53 +08:00
Lea Anthony
b6940d95a2 [v3 windows] Add frameless resize 2023-05-30 16:31:53 +08:00
stffabi
75f0457375 [v3 windows] Add HiDPI awareness 2023-05-30 16:31:52 +08:00
stffabi
ffe31b6265 [v3 windows] Add frameless support 2023-05-30 16:31:52 +08:00
Lea Anthony
8963610722 [v3 windows] Implement getScreen 2023-05-30 16:31:52 +08:00
Lea Anthony
66bfcf0e36 [v3] Ensure impl calls from WebvieWindow are on the main thread. Support size. 2023-05-30 16:31:52 +08:00
Lea Anthony
0b3559abfe [v3] Fix examples 2023-05-30 16:31:51 +08:00
Lea Anthony
773389ee5e [v3] Update examples to use correct options. 2023-05-30 16:31:51 +08:00
Lea Anthony
4c04991d4d [v3] Change WebviewWindow options to be a value, not a pointer. Support Un/Fullscreen. Remove main thread switching. Use parent options instead of local variables. 2023-05-30 16:31:51 +08:00
Lea Anthony
d56bb59b72 [v3 Windows] Support application hide/show. Add WebviewWindow.IsVisible(). 2023-05-30 16:31:50 +08:00
Lea Anthony
6e92a4f71e [v3 Windows] Support setMin/MaxSize, setPosition 2023-05-30 16:31:50 +08:00
Lea Anthony
1f6217c0d8 [v3 Windows] Add Support for SetTitle, Center, Un/Minimise/Maximise, IsMin/Maximised, IsNormal, Show/Hide 2023-05-30 16:31:50 +08:00
Lea Anthony
17204bebd0 [v3 Breaking Change] Add NativeWindowHandle method to WebviewWindow. 2023-05-30 16:31:49 +08:00
Lea Anthony
728e2019d8 [v3 windows] Moved w32 from internal to pkg so it may be used by applications 2023-05-30 16:31:49 +08:00
Lea Anthony
7f3fdd6977 [v3 windows] Add WndProcInterceptor for custom message processing 2023-05-30 16:31:49 +08:00
Lea Anthony
e8798f8371 [v3 windows] Rename options_windows.go -> options_win.go 2023-05-30 16:31:48 +08:00
Lea Anthony
402b743553 [v3 windows] Add APM Events 2023-05-30 16:31:48 +08:00
Lea Anthony
f08ae2fc62 [v3] Update application.On and window.On to return functions that unregister the listener. WebviewWindow.onApplicationEvent is a helper which will manage the unregistering for you on window destroy. 2023-05-30 16:31:48 +08:00
Lea Anthony
178ea9c8c5 [windows] Split out wndProc. Generate windows events, support per-window themes 2023-05-30 16:31:48 +08:00
Lea Anthony
7c63cee9e8 [windows] Support AlwaysOnTop, EnableResize at runtime. Added Solid/Transparent/Translucent options. 2023-05-30 16:31:47 +08:00
stffabi
4a60dfc373 [v3, windows] Add MainThread dispatching and fixes the blocking window 2023-05-30 16:31:47 +08:00
Lea Anthony
829a829cb4 [windows] WIP 2023-05-30 16:31:47 +08:00
Travis McLane
34896ccb4e [darwin] add getPrimaryScreen/getScreens to impl (#2618) 2023-05-30 16:31:46 +08:00
Lea Anthony
5df5eb6a04 Fix module path for non-modified repo 2023-05-30 16:31:46 +08:00
Lea Anthony
31ba36baf3 [windows] Initial commit 2023-05-30 16:31:46 +08:00
Lea Anthony
bf10f71760 [windows] Fix paths for wails init 2023-05-30 16:31:45 +08:00
Lea Anthony
8aa61fff6d Intial STATUS.md commit 2023-05-30 16:31:45 +08:00
Lea Anthony
f645b530da
[v3] Update esbuild 2023-05-19 07:58:25 +10:00
Lea Anthony
27573d191e [v3] Improve invoke 2023-05-18 19:18:20 +10:00
Lea Anthony
d6b4fdf979
[v3 mac] Support drag 2023-05-17 21:09:27 +10:00
Lea Anthony
39c834b83f
[v3 mac] DisableWindowShadow -> DisableShadow 2023-05-17 08:13:05 +10:00
Lea Anthony
f210357bfe
[v3 mac] Basic common event support. Taskfile refactor 2023-05-17 07:58:40 +10:00
Lea Anthony
3094c19cf3 [v3 mac] Update README 2023-05-16 18:00:17 +10:00
Lea Anthony
225437f1e8 [v3 mac] Add DisableWindowShadow option 2023-05-16 17:54:34 +10:00
Lea Anthony
a23bb1e350
[v3 windows] initial dialog support. Refactor button callback name 2023-05-12 20:56:22 +10:00
stffabi
2fbb21a84e [v3 darwin] Add darwin identifier darwin only file 2023-05-12 11:02:15 +02:00
stffabi
5c08fcb43e [v3 darwin] Add darwin identifier to all C files of darwin 2023-05-12 09:25:50 +02:00
stffabi
cc59655cb1 [v3 windows] Add close handling: HideOnClose, QuitOnLastWindowClosed and DisableQuitOnLastWindowClosed 2023-05-12 08:06:05 +02:00
Travis McLane
8ff0a2b0ff [v3 example] menu text toggle 2023-05-11 11:10:17 -05:00
Travis McLane
fe549af784 [v3 example] add menuitem.Hidden / setHidden example 2023-05-11 10:56:19 -05:00
Travis McLane
a4549c94c1 [v3 darwin] menuitem.setHidden implementation 2023-05-11 10:51:52 -05:00
Travis McLane
706256d3f0 [dialogs] remove default title
without this removal a user would have to call `SetTitle("")` in order to
erase the default if they desire a title-less dialog.
2023-05-11 08:54:38 -05:00
stffabi
3049773e7f [v3 application] Fix race conditions between starting a window/systray and starting the application
Make sure a window is never run before the windowCreated hooks have been executed.
2023-05-11 07:00:42 +02:00
Travis McLane
9da5df354e make it compilable again 2023-05-10 09:10:03 -05:00
Travis McLane
54ba6d47f4 Revert "[linux] dispatchOnMainThread"
This reverts commit 346517a185640aa40bc8710b815cf3e5ff7dc4a8.
2023-05-10 09:10:03 -05:00
Travis McLane
17647e2c2f [linux/cgo] hide/show implementation 2023-05-10 09:10:03 -05:00
Travis McLane
9da5cea88d [linux/cgo] bugfix 2023-05-10 09:10:03 -05:00
Travis McLane
3784746ddb [linux] STATUS.md 2023-05-10 09:10:03 -05:00
Travis McLane
281f6335c1 [linux] dispatchOnMainThread 2023-05-10 09:10:03 -05:00
Travis McLane
5129c0f4e2 [fixup] remove 'activate' 2023-05-10 09:10:03 -05:00
Travis McLane
5078e89a71 [darwin] implement isNormal 2023-05-10 09:10:03 -05:00
Travis McLane
41aef27631 [linux] use getNativeApplication 2023-05-10 09:10:03 -05:00
Travis McLane
754d0934bf [darwin] systray basic darkmode implementation 2023-05-10 09:10:03 -05:00
Travis McLane
be2d616190 [linux] getNativeApplication 2023-05-10 09:10:03 -05:00
Travis McLane
ba34e47c4b [linux/purego] updates 2023-05-10 09:10:03 -05:00
Travis McLane
a485b188b3 [linux/cgo] updates 2023-05-10 09:10:03 -05:00
Travis McLane
718e89ad1e [core/menu] prevent nil impl crash 2023-05-10 09:10:03 -05:00
Travis McLane
9453a60254 [linux] window registration + default menu 2023-05-10 09:10:03 -05:00
Travis McLane
f87ec9d401 [purego] 2023-05-10 09:10:03 -05:00
Travis McLane
cb1859a710 [cgo] registerWindow 2023-05-10 09:10:03 -05:00
Travis McLane
1ed95164db [purego] 2023-05-10 09:10:03 -05:00
Travis McLane
ac5d0e54f0 [purego] assethandler updates 2023-05-10 09:10:03 -05:00
Travis McLane
b1e79411e7 [examples] update label on click 2023-05-10 09:10:03 -05:00
Travis McLane
a9d834d715 [examples] update label on click 2023-05-10 09:10:03 -05:00
Travis McLane
68cfd130d3 [linux/cgo] initial implementation 2023-05-10 09:10:03 -05:00
Travis McLane
93a4b823c8 [linux/purego] initial port 2023-05-10 09:10:03 -05:00
Travis McLane
769662d77a [v2] assetserver/webview purego implementation 2023-05-10 09:10:03 -05:00
Lea Anthony
7fd627f169
[v3 windows] initial systray support 2023-05-10 19:35:40 +10:00
Lea Anthony
b91468b6f2 [v3 mac] Update api. New template icon. 2023-05-09 21:55:17 +10:00
Lea Anthony
0b9cd4be5d
[v3 windows] update status 2023-05-09 21:47:22 +10:00
Lea Anthony
4c587ee1b8
[v3 windows] New icons 2023-05-09 19:53:01 +10:00
Lea Anthony
19e1e8b8a6
[v3 windows] Move icons to own package, systray dark mode icon, window.Focus(), 2023-05-09 19:52:33 +10:00
Lea Anthony
67e9522c67
[v3 windows] Rename systray callback handlers 2023-05-08 20:16:25 +10:00
Lea Anthony
a829b38a34
[v3 windows] Dialogs to use invokeSync 2023-05-08 20:11:51 +10:00
Lea Anthony
c8dae94b5b
[v3 windows] Systray callback handlers 2023-05-08 19:43:58 +10:00
stffabi
87267758ac [v3 windows] Fix wndproc default case with WMMessageToString 2023-05-07 22:17:43 +02:00
stffabi
5f72df81fb [v3 windows] Do not disable WndProc messaging for systray when updating icon 2023-05-07 21:40:40 +02:00
Lea Anthony
1ed270fe05
[v3 windows] Fix systray icon size 2023-05-07 20:19:37 +10:00
Lea Anthony
19a654a2b1
[v3 windows] Initial systray support 2023-05-07 19:13:07 +10:00
Lea Anthony
f9bbc11711
[v3] Use invokeSync for systray methods 2023-05-07 10:34:08 +10:00
Lea Anthony
42b1807c36
[v3 windows] Support irregular shaped windows. Centered option. 2023-05-06 20:22:28 +10:00
Lea Anthony
647982de1a
[v3 windows] Support irregular shaped windows 2023-05-06 15:05:00 +10:00
Lea Anthony
f5557c612a
Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha 2023-05-05 06:41:04 +10:00
stffabi
f4749db8b3 [v3] Add some missing methods for darwin and windows 2023-05-02 21:56:40 +02:00
Travis McLane
86a1de6788 [w32] move windows specific code to impl file 2023-05-02 10:52:21 -05:00
Travis McLane
792c5e2d95 [w32] add missing build constraint 2023-05-02 10:52:09 -05:00
Lea Anthony
6758580be9
[v3 windows] Add frameless resize 2023-05-02 23:18:22 +10:00
stffabi
6f246eed4a [v3 windows] Add HiDPI awareness 2023-05-02 09:45:21 +02:00
stffabi
fc3725d3f4 [v3 windows] Add frameless support 2023-05-02 09:29:47 +02:00
Lea Anthony
00c6f0dfdb
[v3 windows] Implement getScreen 2023-05-01 21:11:40 +10:00
Lea Anthony
cf7b4e2458
[v3] Ensure impl calls from WebvieWindow are on the main thread. Support size. 2023-05-01 20:28:46 +10:00
Lea Anthony
f682e44367
[v3] Fix examples 2023-05-01 18:24:24 +10:00
Lea Anthony
9d1f86c410
[v3] Update examples to use correct options. 2023-05-01 18:21:22 +10:00
Lea Anthony
dac281ac32
[v3] Change WebviewWindow options to be a value, not a pointer. Support Un/Fullscreen. Remove main thread switching. Use parent options instead of local variables. 2023-05-01 18:20:28 +10:00
Lea Anthony
29a58086a3
[v3 Windows] Support application hide/show. Add WebviewWindow.IsVisible(). 2023-05-01 11:34:06 +10:00
Lea Anthony
cb8eb755a7
[v3 Windows] Support setMin/MaxSize, setPosition 2023-05-01 10:52:46 +10:00
Lea Anthony
1e8fc29ee4
[v3 Windows] Add Support for SetTitle, Center, Un/Minimise/Maximise, IsMin/Maximised, IsNormal, Show/Hide 2023-04-30 20:55:51 +10:00
Lea Anthony
9a05b49e3d
[v3 Breaking Change] Add NativeWindowHandle method to WebviewWindow. 2023-04-30 10:17:03 +10:00
Lea Anthony
79f8d92084
[v3 windows] Moved w32 from internal to pkg so it may be used by applications 2023-04-30 10:02:00 +10:00
Lea Anthony
6e56542586
[v3 windows] Add WndProcInterceptor for custom message processing 2023-04-30 09:49:50 +10:00
Lea Anthony
c53443b62b
[v3 windows] Rename options_windows.go -> options_win.go 2023-04-30 09:10:00 +10:00
Lea Anthony
1128662c89
[v3 windows] Add APM Events 2023-04-29 20:33:33 +10:00
Lea Anthony
676787417f
[v3] Update application.On and window.On to return functions that unregister the listener. WebviewWindow.onApplicationEvent is a helper which will manage the unregistering for you on window destroy. 2023-04-29 19:39:05 +10:00
Lea Anthony
57422dccf3
[windows] Split out wndProc. Generate windows events, support per-window themes 2023-04-29 12:14:12 +10:00
Lea Anthony
7f3f51e36b
[windows] Support AlwaysOnTop, EnableResize at runtime. Added Solid/Transparent/Translucent options. 2023-04-28 21:11:49 +10:00
stffabi
ef184ec8bf [v3, windows] Add MainThread dispatching and fixes the blocking window 2023-04-26 21:06:54 +02:00
Lea Anthony
9bfe3094dd
[windows] WIP 2023-04-26 21:07:04 +10:00
stffabi
3547b4d010
[v2, darwin] Add some missing default shortcuts (#2586)
* [v2, darwin] Add "Hide, Hide Others, Show All“ to appmenu

This also includes shortcuts support for those commands.
Arrange the menu items in the well known MacOS order.

* [v2, darwin] Add Window menu with well known shortcuts Minimize, Full-Screen and Zoom.
2023-04-26 21:07:04 +10:00
stffabi
1222e3aa1b
[v2, dev] Use custom schemes for in-app dev mode (#2610)
This fixes some long-standing inconsistencies between
dev mode builds and production builds but is a breaking
change. Dev mode uses custom scheme for Vite versions >= 3.0.0
and for older it still behaves in the old way.
2023-04-26 21:07:03 +10:00
stffabi
cff3ee5079
[assetServer] Improve release/close handling of webview requests (#2612) 2023-04-26 21:07:03 +10:00
Travis McLane
c91aa462aa
[darwin] add getPrimaryScreen/getScreens to impl (#2618) 2023-04-24 09:34:44 +10:00
Lea Anthony
62b3775e2f
Fix module path for non-modified repo 2023-04-19 08:22:58 +10:00
Lea Anthony
54bf8c1142
[windows] Initial commit 2023-04-18 21:27:09 +10:00
Lea Anthony
c4f613e4c5
[windows] Fix paths for wails init 2023-04-18 20:41:59 +10:00
Lea Anthony
a66d9ab0b1
Intial STATUS.md commit 2023-04-18 18:53:39 +10:00
2722 changed files with 239808 additions and 92 deletions

View file

@ -1,6 +1,7 @@
{
"files": [
"website/src/pages/credits.mdx"
"website/src/pages/credits.mdx",
"docs/src/assets/contributors.html"
],
"imageSize": 75,
"commit": false,

71
.coderabbit.yaml Normal file
View file

@ -0,0 +1,71 @@
language: en-US
tone_instructions: ''
early_access: false
enable_free_tier: true
reviews:
profile: chill
request_changes_workflow: false
high_level_summary: true
high_level_summary_placeholder: '@coderabbitai summary'
auto_title_placeholder: '@coderabbitai'
review_status: true
poem: true
collapse_walkthrough: false
sequence_diagrams: true
path_filters: []
path_instructions: []
abort_on_close: true
auto_review:
enabled: true
auto_incremental_review: true
ignore_title_keywords: []
labels: []
drafts: false
base_branches: ['v3-alpha', 'master']
tools:
shellcheck:
enabled: true
ruff:
enabled: true
markdownlint:
enabled: true
github-checks:
enabled: true
timeout_ms: 90000
languagetool:
enabled: true
enabled_only: false
level: default
biome:
enabled: true
hadolint:
enabled: true
swiftlint:
enabled: true
phpstan:
enabled: true
level: default
golangci-lint:
enabled: true
yamllint:
enabled: true
gitleaks:
enabled: true
checkov:
enabled: true
detekt:
enabled: true
eslint:
enabled: true
chat:
auto_reply: true
knowledge_base:
opt_out: false
learnings:
scope: auto
issues:
scope: auto
jira:
project_keys: []
linear:
team_keys: []

View file

@ -7,6 +7,8 @@ body:
- type: markdown
attributes:
value: |
***Please note: No bug reports are currently being accepted for Wails v3***
***Please note: No bug reports are currently being accepted for Wails v3***
***Please note: No bug reports are currently being accepted for Wails v3***
Before submitting this issue, please do the following:
- Do a web search for your error. This usually leads to a much better understanding of the issue.

44
.github/file-labeler.yml vendored Normal file
View file

@ -0,0 +1,44 @@
# File path specific labels
v2-only:
- 'v2/**/*'
v3-alpha:
- 'v3/**/*'
windows:
- '**/*_windows.go'
- 'v2/internal/frontend/desktop/windows/**/*'
macos:
- '**/*_darwin.go'
- 'v2/internal/frontend/desktop/darwin/**/*'
linux:
- '**/*_linux.go'
- 'v2/internal/frontend/desktop/linux/**/*'
cli:
- 'v2/cmd/**/*'
- 'v3/cmd/**/*'
- '**/cli/**/*'
- '**/commands/**/*'
documentation:
- '**/*.md'
- 'docs/**/*'
- 'website/**/*'
- 'mkdocs-website/**/*'
templates:
- '**/templates/**/*'
- '**/template/**/*'
runtime:
- '**/runtime/**/*'
- 'v2/internal/runtime/**/*'
- 'v3/internal/runtime/**/*'
bindings:
- 'v2/internal/binding/**/*'
- 'v3/internal/generator/**/*'

144
.github/issue-labeler.yml vendored Normal file
View file

@ -0,0 +1,144 @@
# Version labels
v2-only:
- '\[v2\]'
- '\(v2\)'
- 'v2:'
- 'version 2'
- 'wails v2'
- 'using v2'
- 'master branch'
v3-alpha:
- '\[v3\]'
- '\(v3\)'
- 'v3:'
- '\[v3-alpha\]'
- '\(v3-alpha\)'
- 'version 3'
- 'wails v3'
- 'using v3'
- 'v3-alpha branch'
# Component labels
webview2:
- 'webview2'
- 'windows'
- 'microsoft edge'
- 'edge browser'
- 'IE'
- 'Explorer'
- 'browser crashes'
macos:
- 'macOS'
- 'mac OS'
- 'OS X'
- 'darwin'
- 'cocoa'
- 'Safari'
- 'Catalyst'
- 'Ventura'
- 'Sonoma'
- 'apple'
linux:
- 'linux'
- 'ubuntu'
- 'debian'
- 'fedora'
- 'gtk'
- 'webkitgtk'
- 'webkit2gtk'
- 'gnome'
- 'x11'
- 'wayland'
cli:
- 'cli'
- 'command line'
- 'wails doctor'
- 'wails init'
- 'wails build'
- 'wails dev'
- 'template'
- 'scaffolding'
# Type labels
bug:
- 'bug'
- 'crash'
- 'broken'
- 'failure'
- 'error'
- 'failed'
- 'panic'
- 'segfault'
- 'issue'
- 'not working'
- 'problem'
enhancement:
- 'feature'
- 'enhancement'
- 'request'
- 'add'
- 'new'
- 'improve'
- 'functionality'
- 'support for'
- 'please add'
- 'would be nice'
documentation:
- 'docs'
- 'documentation'
- 'readme'
- 'example'
- 'tutorial'
- 'guide'
- 'explanation'
- 'clarification'
- 'instructions'
security:
- 'security'
- 'vulnerability'
- 'exploit'
- 'hack'
- 'CVE'
- 'secure'
- 'encryption'
- 'hardening'
performance:
- 'performance'
- 'slow'
- 'speed'
- 'memory leak'
- 'cpu usage'
- 'high memory'
- 'lag'
- 'freeze'
- 'optimization'
# Priority labels
high-priority:
- 'urgent'
- 'critical'
- 'security'
- 'high priority'
- 'important'
- 'production'
- 'blocker'
- 'blocking'
question:
- 'how to'
- 'how do i'
- 'can I'
- 'is it possible'
- 'question'
- 'help me'
- 'need help'
- 'assistance'
- 'confused'

View file

@ -1,9 +1,20 @@
<!--
READ CAREFULLY: Before submitting your PR, please ensure you have created an issue for your PR.
It is essential that you do this so that we can discuss the proposed changes before you spend time on them.
If you do not create an issue, your PR may be rejected without review.
If a relevant issue already exists, please reference it in your PR by including `Fixes #<issue number>` in your PR description.
*********************************************************************
* PLEASE READ BEFORE SUBMITTING YOUR PR *
* YOUR PR MAY BE REJECTED IF IT DOES NOT FOLLOW THESE STEPS *
*********************************************************************
- *DO NOT* submit bugs for a source install of v3, ONLY tagged versions, e.g. v3.0.0-alpha.11
- *DO NOT* submit PRs for v3 alpha enhancements, unless you have opened a post on the discord channel.
All enhancements must be discussed first.
The feedback guide for v3 is here: https://v3alpha.wails.io/getting-started/feedback/
- Before submitting your PR, please ensure you have created and linked the PR to an issue.
- If a relevant issue already exists, please reference it in your PR by including `Fixes #<issue number>` in your PR description.
- Please fill in the checklists.
-->
# Description
@ -14,7 +25,7 @@ Fixes # (issue)
## Type of change
Please delete options that are not relevant.
Please select the option that is relevant.
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
@ -28,6 +39,8 @@ Please describe the tests that you ran to verify your changes. Provide instructi
- [ ] Windows
- [ ] macOS
- [ ] Linux
If you checked Linux, please specify the distro and version.
## Test Configuration
@ -35,7 +48,7 @@ Please paste the output of `wails doctor`. If you are unable to run this command
# Checklist:
- [ ] I have updated `website/src/pages/changelog.mdx` with details of this PR
- [ ] I have updated `v3/UNRELEASED_CHANGELOG.md` with details of this PR
- [ ] My code follows the general coding style of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas

26
.github/stale.yml vendored
View file

@ -1,7 +1,7 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
daysUntilStale: 45
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
daysUntilClose: 10
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
@ -9,14 +9,28 @@ exemptLabels:
- onhold
- inprogress
- "Selected For Development"
- bug
- enhancement
- v3-alpha
- high-priority
# Label to use when marking an issue as stale
staleLabel: "Wont Fix"
staleLabel: "stale"
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
recent activity. It will be closed if no further activity occurs within the next 10 days.
If this issue is still relevant, please add a comment to keep it open.
Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
closeComment: >
This issue has been automatically closed due to lack of activity.
Please feel free to reopen it if it's still relevant.
exemptMilestones: true
exemptAssignees: true
# Only mark issues (not PRs)
only: issues
# Exempt issues created before a certain date
exemptCreatedBefore: "2024-01-01T00:00:00Z"
# Starts checking issues only after the specified date
startDate: "2025-06-01T00:00:00Z"

33
.github/workflows/auto-label-issues.yml vendored Normal file
View file

@ -0,0 +1,33 @@
name: Auto Label Issues
on:
issues:
types: [opened, edited, reopened]
pull_request_target:
types: [opened, edited, reopened, synchronize]
jobs:
auto-label:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Label issues and PRs by content
uses: github/issue-labeler@v3.4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/issue-labeler.yml
enable-versioned-regex: 0
include-title: 1
- name: Label issues and PRs by file paths
uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/file-labeler.yml
sync-labels: true

372
.github/workflows/automated-releases.yml vendored Normal file
View file

@ -0,0 +1,372 @@
name: Automated Nightly Releases
on:
workflow_dispatch:
inputs:
force_release:
description: 'Force release even if no changes detected'
required: false
default: false
type: boolean
dry_run:
description: 'Run in dry-run mode (no actual releases)'
required: false
default: false
type: boolean
# schedule:
# Run at 2 AM UTC every day - DISABLED for safety until ready
# - cron: '0 2 * * *'
env:
GO_VERSION: '1.24'
jobs:
check-permissions:
name: Check Release Permissions
runs-on: ubuntu-latest
outputs:
authorized: ${{ steps.check.outputs.authorized }}
steps:
- name: Check if user is authorized for releases
id: check
run: |
# Only allow specific users to trigger releases
AUTHORIZED_USERS="leaanthony"
if [[ "$AUTHORIZED_USERS" == *"${{ github.actor }}"* ]]; then
echo "✅ User ${{ github.actor }} is authorized for releases"
echo "authorized=true" >> $GITHUB_OUTPUT
else
echo "❌ User ${{ github.actor }} is not authorized for releases"
echo "authorized=false" >> $GITHUB_OUTPUT
fi
detect-v2-changes:
name: Detect v2 Changes
runs-on: ubuntu-latest
needs: check-permissions
if: needs.check-permissions.outputs.authorized == 'true'
outputs:
has_changes: ${{ steps.changes.outputs.has_changes }}
commits_since_last: ${{ steps.changes.outputs.commits_since_last }}
last_release_tag: ${{ steps.changes.outputs.last_release_tag }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Check for v2 changes since last release
id: changes
run: |
echo "🔍 Checking for v2 changes since last release..."
# Find the last v2 release tag
LAST_TAG=$(git tag -l "v2.*" --sort=-version:refname | head -n 1)
if [ -z "$LAST_TAG" ]; then
echo "No previous v2 tags found, assuming first release"
LAST_TAG=$(git rev-list --max-parents=0 HEAD)
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "commits_since_last=999" >> $GITHUB_OUTPUT
echo "last_release_tag=none" >> $GITHUB_OUTPUT
else
echo "Last v2 release tag: $LAST_TAG"
echo "last_release_tag=$LAST_TAG" >> $GITHUB_OUTPUT
# Count commits since last release affecting v2 or root files
COMMITS_COUNT=$(git rev-list --count ${LAST_TAG}..HEAD -- v2/ website/ README.md CHANGELOG.md || echo "0")
echo "Commits since last v2 release: $COMMITS_COUNT"
echo "commits_since_last=$COMMITS_COUNT" >> $GITHUB_OUTPUT
if [ "$COMMITS_COUNT" -gt 0 ] || [ "${{ github.event.inputs.force_release }}" == "true" ]; then
echo "✅ Changes detected or forced release"
echo "has_changes=true" >> $GITHUB_OUTPUT
else
echo " No changes detected since last release"
echo "has_changes=false" >> $GITHUB_OUTPUT
fi
fi
detect-v3-changes:
name: Detect v3-alpha Changes
runs-on: ubuntu-latest
needs: check-permissions
if: needs.check-permissions.outputs.authorized == 'true'
outputs:
has_changes: ${{ steps.changes.outputs.has_changes }}
commits_since_last: ${{ steps.changes.outputs.commits_since_last }}
last_release_tag: ${{ steps.changes.outputs.last_release_tag }}
steps:
- name: Checkout v3-alpha branch
uses: actions/checkout@v4
with:
ref: v3-alpha
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Check for v3-alpha changes since last release
id: changes
run: |
echo "🔍 Checking for v3-alpha changes since last release..."
# Find the last v3 alpha release tag
LAST_TAG=$(git tag -l "v3.*-alpha.*" --sort=-version:refname | head -n 1)
if [ -z "$LAST_TAG" ]; then
echo "No previous v3-alpha tags found, assuming first release"
LAST_TAG=$(git rev-list --max-parents=0 HEAD)
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "commits_since_last=999" >> $GITHUB_OUTPUT
echo "last_release_tag=none" >> $GITHUB_OUTPUT
else
echo "Last v3-alpha release tag: $LAST_TAG"
echo "last_release_tag=$LAST_TAG" >> $GITHUB_OUTPUT
# Count commits since last release affecting v3 or docs
COMMITS_COUNT=$(git rev-list --count ${LAST_TAG}..HEAD -- v3/ docs/ || echo "0")
echo "Commits since last v3-alpha release: $COMMITS_COUNT"
echo "commits_since_last=$COMMITS_COUNT" >> $GITHUB_OUTPUT
if [ "$COMMITS_COUNT" -gt 0 ] || [ "${{ github.event.inputs.force_release }}" == "true" ]; then
echo "✅ Changes detected or forced release"
echo "has_changes=true" >> $GITHUB_OUTPUT
else
echo " No changes detected since last release"
echo "has_changes=false" >> $GITHUB_OUTPUT
fi
fi
release-v2:
name: Create v2 Release
runs-on: ubuntu-latest
needs: [check-permissions, detect-v2-changes]
if: |
needs.check-permissions.outputs.authorized == 'true' &&
needs.detect-v2-changes.outputs.has_changes == 'true'
outputs:
version: ${{ steps.release.outputs.version }}
release_notes: ${{ steps.release.outputs.release_notes }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Run v2 release script and extract notes
id: release
run: |
echo "🚀 Running v2 release script..."
cd v2/tools/release
# Run release script and capture output
RELEASE_OUTPUT=$(go run release.go 2>&1)
echo "$RELEASE_OUTPUT"
# Extract version from output or version file
NEW_VERSION=$(cat ../../cmd/wails/internal/version.txt)
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
# Extract release notes from delimited output
RELEASE_NOTES=$(echo "$RELEASE_OUTPUT" | sed -n '/=== RELEASE NOTES FOR/,/=== END RELEASE NOTES ===/p' | sed '1d;$d')
# Save release notes to file for multiline output
echo "$RELEASE_NOTES" > ../../../release_notes_v2.md
# Set output (escape for GitHub Actions)
{
echo "release_notes<<EOF"
echo "$RELEASE_NOTES"
echo "EOF"
} >> $GITHUB_OUTPUT
echo "✅ v2 release script completed - version: $NEW_VERSION"
- name: Create v2 git tag and release
if: github.event.inputs.dry_run != 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION="${{ steps.release.outputs.version }}"
echo "📝 Creating v2 release: $VERSION"
# Configure git
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
# Commit the changelog changes
git add website/src/pages/changelog.mdx v2/cmd/wails/internal/version.txt
git commit -m "chore: release $VERSION
Automated release created by GitHub Actions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>"
# Create and push tag
git tag -a "$VERSION" -m "Release $VERSION"
git push origin master
git push origin "$VERSION"
# Create GitHub release with notes
gh release create "$VERSION" \
--title "Release $VERSION" \
--notes-file release_notes_v2.md \
--target master
- name: Log dry-run results for v2
if: github.event.inputs.dry_run == 'true'
run: |
echo "🧪 DRY RUN - Would have created v2 release:"
echo "Version: ${{ steps.release.outputs.version }}"
echo "Release Notes:"
cat release_notes_v2.md
release-v3:
name: Create v3-alpha Release
runs-on: ubuntu-latest
needs: [check-permissions, detect-v3-changes]
if: |
needs.check-permissions.outputs.authorized == 'true' &&
needs.detect-v3-changes.outputs.has_changes == 'true'
outputs:
version: ${{ steps.release.outputs.version }}
release_notes: ${{ steps.release.outputs.release_notes }}
steps:
- name: Checkout v3-alpha branch
uses: actions/checkout@v4
with:
ref: v3-alpha
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Run v3 release script and extract notes
id: release
run: |
echo "🚀 Running v3-alpha release script..."
cd v3/tasks/release
# Run release script and capture output
RELEASE_OUTPUT=$(go run release.go 2>&1)
echo "$RELEASE_OUTPUT"
# Extract version from output or version file
NEW_VERSION=$(cat ../../internal/version/version.txt)
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
# Extract release notes from delimited output
RELEASE_NOTES=$(echo "$RELEASE_OUTPUT" | sed -n '/=== RELEASE NOTES FOR/,/=== END RELEASE NOTES ===/p' | sed '1d;$d')
# Save release notes to file for multiline output
echo "$RELEASE_NOTES" > ../../../release_notes_v3.md
# Set output (escape for GitHub Actions)
{
echo "release_notes<<EOF"
echo "$RELEASE_NOTES"
echo "EOF"
} >> $GITHUB_OUTPUT
echo "✅ v3-alpha release script completed - version: $NEW_VERSION"
- name: Create v3-alpha git tag and release
if: github.event.inputs.dry_run != 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION="${{ steps.release.outputs.version }}"
echo "📝 Creating v3-alpha release: $VERSION"
# Configure git
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
# Commit the changelog changes
git add docs/src/content/docs/changelog.mdx v3/internal/version/version.txt
git commit -m "chore: release $VERSION
Automated v3-alpha release created by GitHub Actions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>"
# Create and push tag
git tag -a "$VERSION" -m "Release $VERSION"
git push origin v3-alpha
git push origin "$VERSION"
# Create GitHub release with notes
gh release create "$VERSION" \
--title "Release $VERSION" \
--notes-file release_notes_v3.md \
--target v3-alpha \
--prerelease
- name: Log dry-run results for v3-alpha
if: github.event.inputs.dry_run == 'true'
run: |
echo "🧪 DRY RUN - Would have created v3-alpha release:"
echo "Version: ${{ steps.release.outputs.version }}"
echo "Release Notes:"
cat release_notes_v3.md
summary:
name: Release Summary
runs-on: ubuntu-latest
needs: [check-permissions, detect-v2-changes, detect-v3-changes, release-v2, release-v3]
if: always() && needs.check-permissions.outputs.authorized == 'true'
steps:
- name: Create release summary
run: |
echo "# 🚀 Automated Release Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Repository**: ${{ github.repository }}" >> $GITHUB_STEP_SUMMARY
echo "**Triggered by**: ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
echo "**Dry Run Mode**: ${{ github.event.inputs.dry_run || 'false' }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
# v2 Summary
echo "## v2 Release" >> $GITHUB_STEP_SUMMARY
if [ "${{ needs.detect-v2-changes.outputs.has_changes }}" == "true" ]; then
if [ "${{ needs.release-v2.result }}" == "success" ]; then
echo "✅ **v2 Release**: Created successfully" >> $GITHUB_STEP_SUMMARY
echo " - Version: ${{ needs.release-v2.outputs.version }}" >> $GITHUB_STEP_SUMMARY
echo " - Commits since last: ${{ needs.detect-v2-changes.outputs.commits_since_last }}" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **v2 Release**: Failed" >> $GITHUB_STEP_SUMMARY
fi
else
echo "⏭️ **v2 Release**: Skipped (no changes)" >> $GITHUB_STEP_SUMMARY
echo " - Commits since last: ${{ needs.detect-v2-changes.outputs.commits_since_last }}" >> $GITHUB_STEP_SUMMARY
fi
# v3 Summary
echo "## v3-alpha Release" >> $GITHUB_STEP_SUMMARY
if [ "${{ needs.detect-v3-changes.outputs.has_changes }}" == "true" ]; then
if [ "${{ needs.release-v3.result }}" == "success" ]; then
echo "✅ **v3-alpha Release**: Created successfully" >> $GITHUB_STEP_SUMMARY
echo " - Version: ${{ needs.release-v3.outputs.version }}" >> $GITHUB_STEP_SUMMARY
echo " - Commits since last: ${{ needs.detect-v3-changes.outputs.commits_since_last }}" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **v3-alpha Release**: Failed" >> $GITHUB_STEP_SUMMARY
fi
else
echo "⏭️ **v3-alpha Release**: Skipped (no changes)" >> $GITHUB_STEP_SUMMARY
echo " - Commits since last: ${{ needs.detect-v3-changes.outputs.commits_since_last }}" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "---" >> $GITHUB_STEP_SUMMARY
echo "🤖 **Automated Release System** | Generated with [Claude Code](https://claude.ai/code)" >> $GITHUB_STEP_SUMMARY

256
.github/workflows/build-and-test-v3.yml vendored Normal file
View file

@ -0,0 +1,256 @@
name: Build + Test v3
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches:
- v3-alpha
paths:
- 'v3/**'
pull_request_review:
types: [submitted]
branches:
- v3-alpha
jobs:
check_approval:
name: Check PR Approval
runs-on: ubuntu-latest
if: github.base_ref == 'v3-alpha'
outputs:
approved: ${{ steps.check.outputs.approved }}
steps:
- name: Check if PR is approved
id: check
run: |
if [[ "${{ github.event.review.state }}" == "approved" || "${{ github.event.pull_request.approved }}" == "true" ]]; then
echo "approved=true" >> $GITHUB_OUTPUT
else
echo "approved=false" >> $GITHUB_OUTPUT
fi
test_js:
name: Run JS Tests
needs: check_approval
runs-on: ubuntu-latest
if: github.base_ref == 'v3-alpha'
strategy:
matrix:
node-version: [20.x]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
run: |
npm ci
npx --yes esbuild@latest --version
- name: Clean build artifacts
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
run: npm run clean
- name: Type-check runtime
working-directory: v3
run: task runtime:check
- name: Test runtime
working-directory: v3
run: task runtime:test
- name: Check that the bundled runtime builds
working-directory: v3
run: task runtime:build
- name: Check that the npm package builds
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
run: npm run build
- name: Store runtime build artifacts
uses: actions/upload-artifact@v4
with:
name: runtime-build-artifacts
path: |
v3/internal/runtime/desktop/@wailsio/runtime/dist/
v3/internal/runtime/desktop/@wailsio/runtime/types/
v3/internal/runtime/desktop/@wailsio/runtime/tsconfig.tsbuildinfo
test_go:
name: Run Go Tests v3
needs: [check_approval, test_js]
runs-on: ${{ matrix.os }}
if: github.base_ref == 'v3-alpha'
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
go-version: [1.24]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install linux dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-latest'
with:
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config xvfb x11-xserver-utils at-spi2-core xdg-desktop-portal-gtk
version: 1.0
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
cache-dependency-path: "v3/go.sum"
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Retrieve runtime build artifacts
uses: actions/download-artifact@v4
with:
name: runtime-build-artifacts
path: v3/internal/runtime/desktop/@wailsio/runtime/
- name: Build Examples
working-directory: v3
run: |
echo "Starting example compilation tests..."
task test:examples
echo "Example compilation tests completed successfully"
- name: Run tests (mac)
if: matrix.os == 'macos-latest'
env:
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13
working-directory: v3
run: go test -v ./...
- name: Run tests (windows)
if: matrix.os == 'windows-latest'
working-directory: v3
run: go test -v ./...
- name: Run tests (ubuntu)
if: matrix.os == 'ubuntu-latest'
working-directory: v3
run: >
xvfb-run --auto-servernum
sh -c '
dbus-update-activation-environment --systemd --all &&
go test -v ./...
'
- name: Typecheck binding generator output
working-directory: v3
run: task generator:test:check
cleanup:
name: Cleanup build artifacts
if: always()
needs: [test_js, test_go]
runs-on: ubuntu-latest
steps:
- uses: geekyeggo/delete-artifact@v5
with:
name: runtime-build-artifacts
failOnError: false
test_templates:
name: Test Templates
needs: test_go
runs-on: ${{ matrix.os }}
if: github.base_ref == 'v3-alpha'
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
template:
- svelte
- svelte-ts
- vue
- vue-ts
- react
- react-ts
- preact
- preact-ts
- lit
- lit-ts
- vanilla
- vanilla-ts
go-version: [1.24]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install linux dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-latest'
with:
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
version: 1.0
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
cache-dependency-path: "v3/go.sum"
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Wails3 CLI
working-directory: v3
run: |
task install
wails3 doctor
- name: Generate template '${{ matrix.template }}'
run: |
mkdir -p ./test-${{ matrix.template }}
cd ./test-${{ matrix.template }}
wails3 init -n ${{ matrix.template }} -t ${{ matrix.template }}
cd ${{ matrix.template }}
wails3 build
build_results:
if: ${{ always() }}
runs-on: ubuntu-latest
name: v3 Build Results
needs: [test_go, test_js, test_templates]
steps:
- run: |
go_result="${{ needs.test_go.result }}"
js_result="${{ needs.test_js.result }}"
templates_result="${{ needs.test_templates.result }}"
if [[ $go_result == "success" || $go_result == "skipped" ]] && \
[[ $js_result == "success" || $js_result == "skipped" ]] && \
[[ $templates_result == "success" || $templates_result == "skipped" ]]; then
echo "All required jobs succeeded or were skipped"
exit 0
else
echo "One or more required jobs failed"
exit 1
fi

View file

@ -0,0 +1,74 @@
name: Changelog Validation (v3)
on:
pull_request:
branches: [ v3-alpha ]
workflow_dispatch:
inputs:
pr_number:
description: 'PR number to validate (for manual testing)'
required: true
type: string
jobs:
validate-changelog:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' || github.event.inputs.pr_number
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || format('refs/pull/{0}/head', github.event.inputs.pr_number) }}
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '1.23'
- name: Get PR information
id: pr_info
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo "pr_number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
echo "base_ref=${{ github.event.pull_request.base.ref }}" >> $GITHUB_OUTPUT
else
echo "pr_number=${{ github.event.inputs.pr_number }}" >> $GITHUB_OUTPUT
echo "base_ref=v3-alpha" >> $GITHUB_OUTPUT
fi
- name: Check if changelog was modified
id: changelog_check
run: |
git fetch origin ${{ steps.pr_info.outputs.base_ref }}
if git diff --name-only origin/${{ steps.pr_info.outputs.base_ref }}..HEAD | grep -q "v3/UNRELEASED_CHANGELOG.md"; then
echo "changelog_modified=true" >> $GITHUB_OUTPUT
echo "✅ UNRELEASED_CHANGELOG.md was modified in this PR"
else
echo "changelog_modified=false" >> $GITHUB_OUTPUT
echo "⚠️ UNRELEASED_CHANGELOG.md was not modified"
fi
- name: Comment on PR about missing changelog
if: steps.changelog_check.outputs.changelog_modified == 'false' && github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
const author = context.payload.pull_request.user.login;
const message = '## ⚠️ Missing Changelog Update\n\n' +
`Hi @${author}, please update \`v3/UNRELEASED_CHANGELOG.md\` with a description of your changes.\n\n` +
'This helps us keep track of changes for the next release.';
await github.rest.issues.createComment({
issue_number: ${{ steps.pr_info.outputs.pr_number }},
owner: context.repo.owner,
repo: context.repo.repo,
body: message
});

View file

@ -29,7 +29,12 @@ jobs:
with:
commit-message: "chore: update sponsors.svg"
add-paths: "website/static/img/sponsors.svg"
title: Update Sponsor Image
body: Generated new image
title: "chore: update sponsors.svg"
body: |
Auto-generated by the sponsor image workflow
[skip ci] [skip actions]
branch: update-sponsors
base: master
delete-branch: true
draft: false

View file

@ -0,0 +1,77 @@
name: Issue Triage Automation
on:
issues:
types: [opened, reopened, labeled, unlabeled]
jobs:
triage:
runs-on: ubuntu-latest
permissions:
issues: write
contents: read
steps:
# Request more info for unclear bug reports
- name: Request more info
uses: actions/github-script@v6
if: |
contains(github.event.issue.labels.*.name, 'bug') &&
!contains(github.event.issue.body, 'wails doctor') &&
!contains(github.event.issue.body, 'reproduction')
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `👋 Thanks for reporting this issue! To help us investigate, could you please:
1. Add the output of \`wails doctor\` if not already included
2. Provide clear steps to reproduce the issue
3. If possible, create a minimal reproduction of the issue
This will help us resolve your issue much faster. Thank you!`
});
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['awaiting feedback']
});
# Prioritize security issues
- name: Prioritize security issues
uses: actions/github-script@v6
if: contains(github.event.issue.labels.*.name, 'security')
with:
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['high-priority']
});
# Tag version-specific issues for project boards
- name: Add to v2 project
uses: actions/github-script@v6
if: |
contains(github.event.issue.labels.*.name, 'v2-only') &&
!contains(github.event.issue.labels.*.name, 'v3-alpha')
with:
script: |
// Replace PROJECT_ID with your actual GitHub project ID
// This is a placeholder as the actual implementation would require
// GraphQL API calls to add to a project board
console.log('Would add to v2 project board');
# Tag version-specific issues for project boards
- name: Add to v3 project
uses: actions/github-script@v6
if: contains(github.event.issue.labels.*.name, 'v3-alpha')
with:
script: |
// Replace PROJECT_ID with your actual GitHub project ID
// This is a placeholder as the actual implementation would require
// GraphQL API calls to add to a project board
console.log('Would add to v3 project board');

210
.github/workflows/nightly-release-v3.yml vendored Normal file
View file

@ -0,0 +1,210 @@
name: Nightly Release v3-alpha
on:
schedule:
- cron: '0 2 * * *' # 2 AM UTC daily
workflow_dispatch:
inputs:
force_release:
description: 'Force release even if no changes detected'
required: false
default: false
type: boolean
dry_run:
description: 'Run in dry-run mode (no actual release)'
required: false
default: true
type: boolean
jobs:
nightly-release:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: read
actions: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: v3-alpha
fetch-depth: 0
token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '1.24'
cache: true
cache-dependency-path: 'v3/go.sum'
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
# Configure git to use the token for authentication
git config --global url."https://x-access-token:${{ secrets.WAILS_REPO_TOKEN || github.token }}@github.com/".insteadOf "https://github.com/"
- name: Check for existing release tag
id: check_tag
run: |
if git describe --tags --exact-match HEAD 2>/dev/null; then
echo "has_tag=true" >> $GITHUB_OUTPUT
echo "tag=$(git describe --tags --exact-match HEAD)" >> $GITHUB_OUTPUT
else
echo "has_tag=false" >> $GITHUB_OUTPUT
echo "tag=" >> $GITHUB_OUTPUT
fi
- name: Check for unreleased changelog content
id: changelog_check
run: |
echo "🔍 Checking UNRELEASED_CHANGELOG.md for content..."
# Run the release script in check mode to see if there's content
cd v3/tasks/release
# Use the release script itself to check for content
if go run release.go --check-only 2>/dev/null; then
echo "has_unreleased_content=true" >> $GITHUB_OUTPUT
echo "✅ Found unreleased changelog content"
else
echo "has_unreleased_content=false" >> $GITHUB_OUTPUT
echo " No unreleased changelog content found"
fi
- name: Quick change detection and early exit
id: quick_check
run: |
echo "🔍 Quick check for changes to determine if we should continue..."
# First check if we have unreleased changelog content
if [ "${{ steps.changelog_check.outputs.has_unreleased_content }}" == "true" ]; then
echo "✅ Found unreleased changelog content, proceeding with release"
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "should_continue=true" >> $GITHUB_OUTPUT
echo "reason=Found unreleased changelog content" >> $GITHUB_OUTPUT
exit 0
fi
# If no unreleased changelog content, check for git changes as fallback
echo "No unreleased changelog content found, checking for git changes..."
# Check if current commit has a release tag
if git describe --tags --exact-match HEAD 2>/dev/null; then
CURRENT_TAG=$(git describe --tags --exact-match HEAD)
echo "Current commit has release tag: $CURRENT_TAG"
# For tagged commits, check if there are changes since the tag
COMMIT_COUNT=$(git rev-list ${CURRENT_TAG}..HEAD --count)
if [ "$COMMIT_COUNT" -eq 0 ]; then
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "should_continue=false" >> $GITHUB_OUTPUT
echo "reason=No changes since existing tag $CURRENT_TAG and no unreleased changelog content" >> $GITHUB_OUTPUT
else
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "should_continue=true" >> $GITHUB_OUTPUT
fi
else
# No current tag, check against latest release
LATEST_TAG=$(git tag --list "v3.0.0-alpha.*" | sort -V | tail -1)
if [ -z "$LATEST_TAG" ]; then
echo "No previous release found, proceeding with release"
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "should_continue=true" >> $GITHUB_OUTPUT
else
COMMIT_COUNT=$(git rev-list ${LATEST_TAG}..HEAD --count)
if [ "$COMMIT_COUNT" -gt 0 ]; then
echo "Found $COMMIT_COUNT commits since $LATEST_TAG"
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "should_continue=true" >> $GITHUB_OUTPUT
else
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "should_continue=false" >> $GITHUB_OUTPUT
echo "reason=No changes since latest release $LATEST_TAG and no unreleased changelog content" >> $GITHUB_OUTPUT
fi
fi
fi
- name: Early exit - No changes detected
if: |
steps.quick_check.outputs.should_continue == 'false' &&
github.event.inputs.force_release != 'true'
run: |
echo "🛑 EARLY EXIT: ${{ steps.quick_check.outputs.reason }}"
echo ""
echo " No changes detected since last release and force_release is not enabled."
echo " Workflow will exit early to save resources."
echo ""
echo " To force a release anyway, run this workflow with 'force_release=true'"
echo ""
echo "## 🛑 Early Exit Summary" >> $GITHUB_STEP_SUMMARY
echo "**Reason:** ${{ steps.quick_check.outputs.reason }}" >> $GITHUB_STEP_SUMMARY
echo "**Action:** Workflow exited early to save resources" >> $GITHUB_STEP_SUMMARY
echo "**Force Release:** Set 'force_release=true' to override this behavior" >> $GITHUB_STEP_SUMMARY
exit 0
- name: Continue with release process
if: |
steps.quick_check.outputs.should_continue == 'true' ||
github.event.inputs.force_release == 'true'
run: |
echo "✅ Proceeding with release process..."
if [ "${{ github.event.inputs.force_release }}" == "true" ]; then
echo "🔨 FORCE RELEASE: Overriding change detection"
fi
- name: Run release script
id: release
if: |
steps.quick_check.outputs.should_continue == 'true' ||
github.event.inputs.force_release == 'true'
env:
WAILS_REPO_TOKEN: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
GITHUB_TOKEN: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
run: |
cd v3/tasks/release
ARGS=()
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
ARGS+=(--dry-run)
fi
go run release.go "${ARGS[@]}"
- name: Summary
if: always()
run: |
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
echo "## 🧪 DRY RUN Release Summary" >> $GITHUB_STEP_SUMMARY
else
echo "## 🚀 Nightly Release Summary" >> $GITHUB_STEP_SUMMARY
fi
echo "================================" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ steps.release.outputs.release_version }}" ]; then
echo "- **Version:** ${{ steps.release.outputs.release_version }}" >> $GITHUB_STEP_SUMMARY
echo "- **Tag:** ${{ steps.release.outputs.release_tag }}" >> $GITHUB_STEP_SUMMARY
echo "- **Status:** ${{ steps.release.outcome == 'success' && '✅ Success' || '⚠️ Failed' }}" >> $GITHUB_STEP_SUMMARY
echo "- **Mode:** ${{ steps.release.outputs.release_dry_run == 'true' && '🧪 Dry Run' || '🚀 Live release' }}" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ steps.release.outputs.release_url }}" ]; then
echo "- **Release URL:** ${{ steps.release.outputs.release_url }}" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Changelog" >> $GITHUB_STEP_SUMMARY
if [ "${{ steps.changelog_check.outputs.has_unreleased_content }}" == "true" ]; then
echo "✅ Unreleased changelog processed and reset." >> $GITHUB_STEP_SUMMARY
else
echo " No unreleased changelog content detected." >> $GITHUB_STEP_SUMMARY
fi
else
echo "- Release script did not run (skipped or failed before execution)." >> $GITHUB_STEP_SUMMARY
fi

View file

@ -1,20 +1,23 @@
name: PR Checks
name: PR Checks (master)
on:
pull_request:
branches:
- master
pull_request_review:
types: [submitted]
branches:
- master
jobs:
check_docs:
name: Check Docs
if: ${{github.repository == 'wailsapp/wails' && contains(github.head_ref,'feature/')}}
if: ${{github.repository == 'wailsapp/wails' && github.base_ref == 'master'}}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v17
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
id: verify-changed-files
with:
files: |
@ -26,47 +29,28 @@ jobs:
run: |
echo "::warning::Feature branch does not contain any changes to the website."
# lint_go:
# name: Run Go Linters
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
#
# - name: Setup Go
# uses: actions/setup-go@v4
# with:
# go-version: "1.21"
#
# - name: Update go modules
# working-directory: ./v2
# run: go mod tidy
#
# - name: Run Linter
# uses: golangci/golangci-lint-action@v3
# with:
# version: v1.54
# working-directory: ./v2
# args: --timeout=10m0s --config ./.golangci.yml
test_go:
name: Run Go Tests
runs-on: ${{ matrix.os }}
if: github.event.review.state == 'approved'
if: >
github.event.review.state == 'approved' &&
github.repository == 'wailsapp/wails' &&
github.base_ref == 'master' &&
github.event.pull_request.head.ref != 'update-sponsors'
strategy:
matrix:
os: [ubuntu-22.04, windows-latest, macos-latest, ubuntu-24.04]
go-version: ['1.21']
go-version: ['1.23']
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install linux dependencies ( 22.04 )
- name: Install linux dependencies (22.04)
if: matrix.os == 'ubuntu-22.04'
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
- name: Install linux dependencies ( 24.04 )
- name: Install linux dependencies (24.04)
if: matrix.os == 'ubuntu-24.04'
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config

119
.github/workflows/publish-npm.yml vendored Normal file
View file

@ -0,0 +1,119 @@
on:
push:
branches: ['v3-alpha']
workflow_dispatch:
concurrency:
group: publish-npm-v3
cancel-in-progress: true
jobs:
detect:
name: Detect committed changes
if: github.event_name != 'workflow_dispatch'
outputs:
changed: ${{ steps.package-json-changes.outputs.any_modified == 'true' || steps.source-changes.outputs.any_modified == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.sha }}
persist-credentials: 'true'
- name: Detect committed package.json changes
id: package-json-changes
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
with:
files: |
v3/internal/runtime/desktop/@wailsio/runtime/package.json
v3/internal/runtime/desktop/@wailsio/runtime/package-lock.json
- name: Detect committed source changes
if: >-
steps.package-json-changes.outputs.any_modified != 'true'
id: source-changes
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
with:
files: |
v3/internal/runtime/Taskfile.yaml
v3/internal/runtime/desktop/@wailsio/compiled/main.js
v3/internal/runtime/desktop/@wailsio/runtime/tsconfig.json
v3/internal/runtime/desktop/@wailsio/runtime/src/**
v3/pkg/events/events.txt
v3/tasks/events/**
rebuild_and_publish:
name: Rebuild and publish
needs: [detect]
if: >-
!failure() && !cancelled()
&& (github.event_name == 'workflow_dispatch' || needs.detect.outputs.changed == 'true')
runs-on: ubuntu-latest
permissions:
contents: write
actions: read
pull-requests: read
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: 'v3-alpha'
token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
- name: Configure git
run: |
git config --global user.email "github-actions@github.com"
git config --global user.name "GitHub Actions"
git config --global url."https://x-access-token:${{ secrets.WAILS_REPO_TOKEN || github.token }}@github.com/".insteadOf "https://github.com/"
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install dependencies
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
run: |
npm ci
npx --yes esbuild@latest --version
- name: Clean build artifacts
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
run: npm run clean
- name: Build bundled runtime
working-directory: v3
run: task runtime:build
- name: Test+Build npm package
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
run: |
npm test
npm run build
- name: Bump version
id: bump-version
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
run: |
echo "version=$(npm --no-git-tag-version --force version prerelease)" >> "$GITHUB_OUTPUT"
- name: Commit changes
run: |
git add .
git commit -m "[skip ci] Publish @wailsio/runtime ${{ steps.bump-version.outputs.version }}"
git push
- name: Publish npm package
uses: JS-DevTools/npm-publish@v3
with:
package: v3/internal/runtime/desktop/@wailsio/runtime
access: public
token: ${{ secrets.NPM_TOKEN }}

View file

@ -5,6 +5,7 @@ on:
branches:
- main
- master
- v3-alpha
paths:
- .github/workflows/semgrep.yml
schedule:
@ -14,7 +15,7 @@ name: Semgrep
jobs:
semgrep:
name: semgrep/ci
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
env:
SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }}
container:

57
.github/workflows/stale-issues.yml vendored Normal file
View file

@ -0,0 +1,57 @@
name: Mark and Close Stale Issues
on:
schedule:
- cron: '0 1 * * *' # Run at 1 AM UTC every day
workflow_dispatch: # Allow manual triggering
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v9
with:
# General settings
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 45
days-before-close: 10
stale-issue-label: 'stale'
operations-per-run: 250 # Increased from 50 to 250
# Issue specific settings
stale-issue-message: |
This issue has been automatically marked as stale because it has not had recent activity.
It will be closed if no further activity occurs within the next 10 days.
If this issue is still relevant, please add a comment to keep it open.
Thank you for your contributions.
close-issue-message: |
This issue has been automatically closed due to lack of activity.
Please feel free to reopen it if it's still relevant.
# PR specific settings - We will not mark PRs as stale
days-before-pr-stale: -1 # Disable PR staling
days-before-pr-close: -1 # Disable PR closing
# Exemptions
exempt-issue-labels: 'pinned,security,onhold,inprogress,Selected For Development,bug,enhancement,v3-alpha,high-priority'
exempt-all-issue-milestones: true
exempt-all-issue-assignees: true
# Protection for existing issues
exempt-issue-created-before: '2024-01-01T00:00:00Z'
start-date: '2025-06-01T00:00:00Z' # Don't start checking until June 1, 2025
# Only process issues, not PRs
only-labels: ''
any-of-labels: ''
remove-stale-when-updated: true
# Debug options
debug-only: false # Set to true to test without actually marking issues
ascending: true # Process older issues first

View file

@ -0,0 +1,216 @@
name: Test Nightly Releases (Dry Run)
on:
workflow_dispatch:
inputs:
dry_run:
description: 'Run in dry-run mode (no actual releases)'
required: false
default: true
type: boolean
test_branch:
description: 'Branch to test against'
required: false
default: 'master'
type: string
env:
GO_VERSION: '1.24'
jobs:
test-permissions:
name: Test Release Permissions
runs-on: ubuntu-latest
outputs:
authorized: ${{ steps.check.outputs.authorized }}
steps:
- name: Check if user is authorized
id: check
run: |
# Test authorization logic
AUTHORIZED_USERS="leaanthony"
if [[ "$AUTHORIZED_USERS" == *"${{ github.actor }}"* ]]; then
echo "✅ User ${{ github.actor }} is authorized"
echo "authorized=true" >> $GITHUB_OUTPUT
else
echo "❌ User ${{ github.actor }} is not authorized"
echo "authorized=false" >> $GITHUB_OUTPUT
fi
test-changelog-extraction:
name: Test Changelog Extraction
runs-on: ubuntu-latest
needs: test-permissions
if: needs.test-permissions.outputs.authorized == 'true'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.test_branch }}
fetch-depth: 0
- name: Test v2 changelog extraction
run: |
echo "🧪 Testing v2 changelog extraction..."
CHANGELOG_FILE="website/src/pages/changelog.mdx"
if [ ! -f "$CHANGELOG_FILE" ]; then
echo "❌ v2 changelog file not found"
exit 1
fi
# Extract unreleased section
awk '
/^## \[Unreleased\]/ { found=1; next }
found && /^## / { exit }
found && !/^$/ { print }
' $CHANGELOG_FILE > v2_release_notes.md
echo "📝 v2 changelog content (first 10 lines):"
head -10 v2_release_notes.md || echo "No content found"
echo "Total lines: $(wc -l < v2_release_notes.md)"
- name: Test v3 changelog extraction (if accessible)
run: |
echo "🧪 Testing v3 changelog extraction..."
if git show v3-alpha:docs/src/content/docs/changelog.mdx > /dev/null 2>&1; then
echo "✅ v3 changelog accessible"
git show v3-alpha:docs/src/content/docs/changelog.mdx | awk '
/^## \[Unreleased\]/ { found=1; next }
found && /^## / { exit }
found && !/^$/ { print }
' > v3_release_notes.md
echo "📝 v3 changelog content (first 10 lines):"
head -10 v3_release_notes.md || echo "No content found"
echo "Total lines: $(wc -l < v3_release_notes.md)"
else
echo "⚠️ v3 changelog not accessible from current context"
fi
test-version-detection:
name: Test Version Detection
runs-on: ubuntu-latest
needs: test-permissions
if: needs.test-permissions.outputs.authorized == 'true'
outputs:
v2_current_version: ${{ steps.versions.outputs.v2_current }}
v2_next_patch: ${{ steps.versions.outputs.v2_next_patch }}
v2_next_minor: ${{ steps.versions.outputs.v2_next_minor }}
v2_next_major: ${{ steps.versions.outputs.v2_next_major }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Test version detection logic
id: versions
run: |
echo "🧪 Testing version detection..."
# Test v2 version parsing
if [ -f "v2/cmd/wails/internal/version.txt" ]; then
CURRENT_V2=$(cat v2/cmd/wails/internal/version.txt | sed 's/^v//')
echo "Current v2 version: v$CURRENT_V2"
echo "v2_current=v$CURRENT_V2" >> $GITHUB_OUTPUT
# Parse and increment
IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_V2"
MAJOR=${VERSION_PARTS[0]}
MINOR=${VERSION_PARTS[1]}
PATCH=${VERSION_PARTS[2]}
PATCH_VERSION="v$MAJOR.$MINOR.$((PATCH + 1))"
MINOR_VERSION="v$MAJOR.$((MINOR + 1)).0"
MAJOR_VERSION="v$((MAJOR + 1)).0.0"
echo "v2_next_patch=$PATCH_VERSION" >> $GITHUB_OUTPUT
echo "v2_next_minor=$MINOR_VERSION" >> $GITHUB_OUTPUT
echo "v2_next_major=$MAJOR_VERSION" >> $GITHUB_OUTPUT
echo "✅ Patch: v$CURRENT_V2 → $PATCH_VERSION"
echo "✅ Minor: v$CURRENT_V2 → $MINOR_VERSION"
echo "✅ Major: v$CURRENT_V2 → $MAJOR_VERSION"
else
echo "❌ v2 version file not found"
fi
test-commit-analysis:
name: Test Commit Analysis
runs-on: ubuntu-latest
needs: test-permissions
if: needs.test-permissions.outputs.authorized == 'true'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Test commit analysis
run: |
echo "🧪 Testing commit analysis..."
# Get recent commits for testing
echo "Recent commits:"
git log --oneline -10
# Test conventional commit detection
RECENT_COMMITS=$(git log --oneline --since="7 days ago")
echo "Commits from last 7 days:"
echo "$RECENT_COMMITS"
# Analyze for release type
RELEASE_TYPE="patch"
if echo "$RECENT_COMMITS" | grep -q "feat!\|fix!\|BREAKING CHANGE:"; then
RELEASE_TYPE="major"
elif echo "$RECENT_COMMITS" | grep -q "feat\|BREAKING CHANGE"; then
RELEASE_TYPE="minor"
fi
echo "✅ Detected release type: $RELEASE_TYPE"
test-summary:
name: Test Summary
runs-on: ubuntu-latest
needs: [test-permissions, test-changelog-extraction, test-version-detection, test-commit-analysis]
if: always()
steps:
- name: Print test results
run: |
echo "# 🧪 Nightly Release Workflow Test Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ "${{ needs.test-permissions.result }}" == "success" ]; then
echo "✅ **Permissions Test**: Passed" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Permissions Test**: Failed" >> $GITHUB_STEP_SUMMARY
fi
if [ "${{ needs.test-changelog-extraction.result }}" == "success" ]; then
echo "✅ **Changelog Extraction**: Passed" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Changelog Extraction**: Failed" >> $GITHUB_STEP_SUMMARY
fi
if [ "${{ needs.test-version-detection.result }}" == "success" ]; then
echo "✅ **Version Detection**: Passed" >> $GITHUB_STEP_SUMMARY
echo " - Current v2: ${{ needs.test-version-detection.outputs.v2_current_version }}" >> $GITHUB_STEP_SUMMARY
echo " - Next patch: ${{ needs.test-version-detection.outputs.v2_next_patch }}" >> $GITHUB_STEP_SUMMARY
echo " - Next minor: ${{ needs.test-version-detection.outputs.v2_next_minor }}" >> $GITHUB_STEP_SUMMARY
echo " - Next major: ${{ needs.test-version-detection.outputs.v2_next_major }}" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Version Detection**: Failed" >> $GITHUB_STEP_SUMMARY
fi
if [ "${{ needs.test-commit-analysis.result }}" == "success" ]; then
echo "✅ **Commit Analysis**: Passed" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Commit Analysis**: Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Note**: This was a dry-run test. No actual releases were created." >> $GITHUB_STEP_SUMMARY

11
.github/workflows/test-simple.yml vendored Normal file
View file

@ -0,0 +1,11 @@
name: Test Simple
on:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Test
run: echo "Hello World"

View file

@ -0,0 +1,128 @@
name: Auto Release on Changelog Update
on:
push:
branches:
- v3-alpha
paths:
- 'v3/UNRELEASED_CHANGELOG.md'
workflow_dispatch:
inputs:
dry_run:
description: 'Run in dry-run mode (no actual release)'
required: false
default: false
type: boolean
jobs:
check-permissions:
name: Check Release Permissions
runs-on: ubuntu-latest
outputs:
authorized: ${{ steps.check.outputs.authorized }}
steps:
- name: Check if user is authorized for releases
id: check
run: |
# Only allow specific users to trigger releases
AUTHORIZED_USERS="leaanthony"
if [[ "$AUTHORIZED_USERS" == *"${{ github.actor }}"* ]]; then
echo "✅ User ${{ github.actor }} is authorized for releases"
echo "authorized=true" >> $GITHUB_OUTPUT
else
echo "❌ User ${{ github.actor }} is not authorized for releases"
echo "authorized=false" >> $GITHUB_OUTPUT
fi
trigger-release:
name: Trigger v3-alpha Release
permissions:
contents: read
runs-on: ubuntu-latest
needs: check-permissions
if: needs.check-permissions.outputs.authorized == 'true'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: v3-alpha
fetch-depth: 0
token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
- name: Check for unreleased changelog content
id: changelog_check
run: |
echo "🔍 Checking UNRELEASED_CHANGELOG.md for content..."
cd v3
# Check if UNRELEASED_CHANGELOG.md has actual content beyond the template
if [ -f "UNRELEASED_CHANGELOG.md" ]; then
# Use a simple check for actual content (bullet points starting with -)
CONTENT_LINES=$(grep -E "^\s*-\s+[^[:space:]]" UNRELEASED_CHANGELOG.md | wc -l)
if [ "$CONTENT_LINES" -gt 0 ]; then
echo "✅ Found $CONTENT_LINES content lines in UNRELEASED_CHANGELOG.md"
echo "has_content=true" >> $GITHUB_OUTPUT
else
echo " No actual content found in UNRELEASED_CHANGELOG.md"
echo "has_content=false" >> $GITHUB_OUTPUT
fi
else
echo "❌ UNRELEASED_CHANGELOG.md not found"
echo "has_content=false" >> $GITHUB_OUTPUT
fi
- name: Trigger nightly release workflow
if: steps.changelog_check.outputs.has_content == 'true'
uses: actions/github-script@v7
with:
github-token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
script: |
const response = await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'nightly-release-v3.yml',
ref: 'v3-alpha',
inputs: {
force_release: 'true',
dry_run: '${{ github.event.inputs.dry_run || "false" }}'
}
});
console.log('🚀 Successfully triggered nightly release workflow');
console.log(`Workflow dispatch response status: ${response.status}`);
// Create a summary
core.summary
.addHeading('🚀 Auto Release Triggered')
.addRaw('The v3-alpha release workflow has been automatically triggered due to changes in UNRELEASED_CHANGELOG.md')
.addTable([
[{data: 'Trigger', header: true}, {data: 'Value', header: true}],
['Repository', context.repo.repo],
['Branch', 'v3-alpha'],
['Actor', context.actor],
['Dry Run', '${{ github.event.inputs.dry_run || "false" }}'],
['Force Release', 'true']
])
.addRaw('\n---\n*This release was automatically triggered by the unreleased-changelog-trigger workflow*')
.write();
- name: No content found
if: steps.changelog_check.outputs.has_content == 'false'
run: |
echo " No content found in UNRELEASED_CHANGELOG.md, skipping release trigger"
echo "## No Release Triggered" >> $GITHUB_STEP_SUMMARY
echo "**Reason:** UNRELEASED_CHANGELOG.md does not contain actual changelog content" >> $GITHUB_STEP_SUMMARY
echo "**Action:** No release workflow was triggered" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "To trigger a release, add actual changelog entries to the UNRELEASED_CHANGELOG.md file." >> $GITHUB_STEP_SUMMARY
- name: Unauthorized user
if: needs.check-permissions.outputs.authorized == 'false'
run: |
echo "❌ User ${{ github.actor }} is not authorized to trigger releases"
echo "## ❌ Unauthorized Release Attempt" >> $GITHUB_STEP_SUMMARY
echo "**User:** ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
echo "**Action:** Release trigger was blocked due to insufficient permissions" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Only authorized users can trigger automatic releases via changelog updates." >> $GITHUB_STEP_SUMMARY

View file

@ -15,7 +15,7 @@ jobs:
- name: Verify Changed files
id: changed-files
uses: tj-actions/changed-files@v41
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
with:
files: |
website/**/*.mdx

42
.github/workflows/v3-docs.yml vendored Normal file
View file

@ -0,0 +1,42 @@
name: Deploy to GitHub Pages
on:
# Trigger the workflow every time you push to the `main` branch
# Using a different branch name? Replace `main` with your branchs name
push:
branches: [v3-alpha]
# Allows you to run this workflow manually from the Actions tab on GitHub.
workflow_dispatch:
# Allow this job to clone the repo and create a page deployment
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
if: github.event.repository.fork == false
steps:
- name: Checkout your repository using git
uses: actions/checkout@v4
- name: Install, build, and upload your site output
uses: withastro/action@v2
with:
path: docs
node-version: 20 # The specific version of Node that should be used to build your site. Defaults to 18. (optional)
# package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}

54
.gitignore vendored
View file

@ -37,5 +37,57 @@ v2/cmd/wails/internal/commands/initialise/templates/testtemplates/
/websitev3/site/
/v3/examples/plugins/bin/testapp
# V3 Example binaries - ignore executables that match directory names
/v3/examples/badge-custom/badge-custom
/v3/examples/badge/badge
/v3/examples/binding/binding
/v3/examples/cancel-async/cancel-async
/v3/examples/cancel-chaining/cancel-chaining
/v3/examples/clipboard/clipboard
/v3/examples/contextmenus/contextmenus
/v3/examples/dev/dev
/v3/examples/dialogs-basic/dialogs-basic
/v3/examples/dialogs/dialogs
/v3/examples/drag-n-drop/drag-n-drop
/v3/examples/environment/environment
/v3/examples/events-bug/events-bug
/v3/examples/events/events
/v3/examples/file-association/file-association
/v3/examples/frameless/frameless
/v3/examples/gin-example/gin-example
/v3/examples/gin-routing/gin-routing
/v3/examples/gin-service/gin-service
/v3/examples/hide-window/hide-window
/v3/examples/html-dnd-api/html-dnd-api
/v3/examples/ignore-mouse/ignore-mouse
/v3/examples/keybindings/keybindings
/v3/examples/menu/menu
/v3/examples/notifications/notifications
/v3/examples/panic-handling/panic-handling
/v3/examples/plain/plain
/v3/examples/raw-message/raw-message
/v3/examples/screen/screen
/v3/examples/services/services
/v3/examples/show-macos-toolbar/show-macos-toolbar
/v3/examples/single-instance/single-instance
/v3/examples/systray-basic/systray-basic
/v3/examples/systray-custom/systray-custom
/v3/examples/systray-menu/systray-menu
/v3/examples/video/video
/v3/examples/window-api/window-api
/v3/examples/window-call/window-call
/v3/examples/window-menu/window-menu
/v3/examples/window/window
/v3/examples/wml/wml
# Common binary names in examples
/v3/examples/*/main
/v3/examples/*/app
/v3/examples/*/changeme
/v3/examples/*/testbuild-*
# Temporary called mkdocs, should be renamed to more standard -website or similar
/mkdocs-website/site
/docs/site
.aider*
.cache
.local

View file

@ -1,6 +1,7 @@
overrides:
- files:
- "**/*.md"
- "**/*.mdx"
options:
printWidth: 80
proseWrap: always

2
.tool-versions Normal file
View file

@ -0,0 +1,2 @@
golang 1.25.1
nodejs 24.8.0

16
AGENTS.md Normal file
View file

@ -0,0 +1,16 @@
# Repository Guidelines
## Project Structure & Module Organization
The repository hosts the current Wails tooling in `v3/`, the maintained v2 runtime in `v2/`, and shared assets under `assets/` and `pkg/`. CLI entrypoints live in `v3/cmd/wails3`, while reusable runtime code is grouped under `v3/internal/*` (platform integrations, packaging, templates) and `v3/pkg/*` (application, services, UI helpers). Example applications used for testing and documentation reside in `v3/examples`, with Docker build scripts and harnesses in `v3/test` and targeted regression suites in `v3/tests`. Documentation and site content are stored in `docs/` and `website/`; keep tutorial updates alongside related code changes.
## Build, Test, and Development Commands
Run `task v3:install` to compile and install the v3 CLI locally, and `task v3:precommit` before submitting changes to execute `go test ./...` and apply repository formatters. Use `task v3:test:examples` for a full platform-agnostic build of every example, or scope work with `task v3:test:example:windows DIR=badge` (replace `badge` as needed). Markdown formatting is standardized with `task format:md`, and changelog automation is driven via `task contributors:update` when contributor metadata changes.
## Coding Style & Naming Conventions
Go code must remain `gofmt`-clean with idiomatic package names (lowercase, no underscores) and exported API names following Go's PascalCase. Match existing directory naming by grouping platform-specific code under clearly named packages (e.g., `mac`, `w32`) and keep generator templates in `internal/templates`. Frontend or documentation updates should respect Prettier defaults; run `npx prettier --write "**/*.md"` or the Taskfile wrapper to stay consistent.
## Testing Guidelines
Unit and integration tests accompany Go sources inside the nearest package; add new suites under `v3/tests` for regression coverage. Cross-platform build validation relies on the Taskfile matrix—`task test:examples:all` exercises macOS, Windows, and Linux Docker pipelines, while `task test:example:linux:docker DIR=<name>` verifies a single sample with architecture auto-detection. Prefer deterministic tests and clean up generated binaries (`testbuild-*`) after manual runs.
## Commit & Pull Request Guidelines
Adopt conventional commits recognized by the release tooling (`feat:`, `fix:`, `chore:`, with `!` or `BREAKING CHANGE:` when necessary) so nightly pipelines classify versions correctly. Reference issues or discussion threads in the body, and update `v3/UNRELEASED_CHANGELOG.md` with concise entries under the appropriate heading. Pull requests should summarize scope, list validation commands executed (e.g., `task v3:precommit`), and include platform-specific notes or screenshots for UI-affecting work. Ensure CI passes and that new docs or samples link from the relevant navigation files in `docs/src/content` before requesting review.

1
CNAME Normal file
View file

@ -0,0 +1 @@
v3alpha.wails.io

317
DEVELOPER_GUIDE.md Normal file
View file

@ -0,0 +1,317 @@
# Wails v3 Developer Guide (Top-Level Overview)
This guide provides a technical, developer-focused overview of the Wails v3 codebase located under the `v3` directory. It is the start of a comprehensive series that will later dive into each package and file in detail. For now, it establishes orientation, architecture, responsibilities, and workflows so contributors have a reliable high-level map before we document every component thoroughly.
Scope: Only the `v3` directory is in scope for this guide.
Last updated: 2025-09-24
## Goals of Wails v3
Wails lets you build desktop applications using Go for the backend and web technologies (HTML/CSS/JS) for the frontend, packaging them into a native desktop experience across platforms. Version 3 focuses on modular internal packages, improved runtime and tooling, and clearer boundaries between build-time and run-time responsibilities.
## High-Level Architecture
- Command-line tooling (CLI): developer-facing entry points for building, generating, packaging, and inspecting Wails apps.
- Internal libraries: build orchestration, runtime integration, OS abstractions, packaging, capabilities, templates, and utilities. These are mostly under `v3/internal` and not intended as public API.
- Public Go packages: simple APIs for applications to use (e.g., `v3/pkg/application`, `v3/pkg/ui`, `v3/pkg/services`, etc.).
- Runtime (desktop): the bridge between the Go app and the web frontend, with bindings, window control, events, and platform integrations.
- Examples and tests: reference implementations and validation.
## Directory Map (top-level under v3)
- `cmd/` — CLI entrypoints.
- `wails3/` — The main Wails v3 CLI. Includes `main.go`, usage docs, and a prebuilt binary (when present in repo artifacts).
- `examples/` — Working sample apps demonstrating various capabilities.
- Examples include, among others: drag-and-drop, raw message handling, etc. These show best practices and can be used to validate changes.
- `internal/` — Internal (non-public) packages used by the CLI and by build/runtime components.
- `assetserver/` — Static file serving logic for development or build steps.
- `buildinfo/` — Build metadata and version stamping.
- `capabilities/` — Capabilities gating or feature flags across subsystems.
- `changelog/` — Utilities for changelog parsing/validation.
- `commands/` — Implementation of CLI subcommands and orchestration logic.
- `dbus/` — D-Bus integration for Linux desktop features.
- `debug/` — Debug utilities or dev-mode helpers.
- `doctor/` — Environment diagnostics (e.g., checking toolchains).
- `fileexplorer/` — File chooser/dialog logic beyond platform primitives.
- `flags/` — Centralized command-line flag definitions and parsing helpers.
- `generator/` — Code and project generators (scaffolding, bindings, etc.).
- `github/` — GitHub integration (release automation or metadata helpers).
- `go-common-file-dialog/` — Common file dialog wrappers (likely cross-platform helpers).
- `hash/` — Hashing utilities for caching, integrity, or content addressing.
- `operatingsystem/` — OS detection and OS-specific helpers.
- `packager/` — Packaging/build pipelines to produce platform-specific bundles.
- `runtime/` — Runtime glue for the desktop environment.
- `desktop/` — Desktop runtime resources including the browser window bridge and TS/JS runtime.
- `@wailsio/runtime/` — TypeScript source for the frontend runtime bridge (window and app bindings, event bus, etc.).
- `s/` — Small internal helpers or shared primitives.
- `service/` — Service abstractions and service lifecycle helpers used internally.
- `signal/` — Signal handling (OS process signals).
- `templates/` — Project and code templates (used by the generator and packager).
- `term/`, `term2/` — Terminal rendering, progress, and rich text helpers.
- `version/` — Versioning helpers shared across commands.
- `pkg/` — Public packages intended for application developers.
- `application/` — Main application abstraction (app lifecycle, window management hooks, startup/shutdown).
- `events/` — Event bus/interfaces for app<->frontend communication.
- `icons/` — Icon helpers/types for application and window icons.
- `mac/` — macOS-specific helpers.
- `mcp/` — Platform or protocol utilities (exact scope to be detailed in the deep dive).
- `services/` — Public service interfaces and service registration.
- `ui/` — UI helpers and types exposed to apps.
- `w32/` — Windows-specific helpers and bindings.
- `scripts/` — Maintenance or developer scripts used in CI or local workflows.
- `validate-changelog.go` — Validates changelog format and rules.
- `tasks/` — Task-based workflow helpers (used by maintainers and CI).
- `cleanup/`, `contribs/`, `events/`, `fix-bindings/`, `release/`, `sed/` — Per-task utilities and scripts.
- `test/`, `tests/`, `tooltest/` — Test suites, fixtures, and tools used for verifying functionality.
- `.task/`, `wep/` — Project tooling/configuration directories (to be detailed later as needed).
## Build and Development Overview
- CLI usage: The `v3/cmd/wails3` command is the primary interface. Typical workflows include:
- Project creation via templates (generator).
- Development server and live reload for the frontend (assetserver, runtime dev helpers).
- Building a production bundle and packaging for the target OS (packager).
- Internal packages are not part of the public API contract and may change. Public Go APIs under `v3/pkg/` are maintained for application developers.
- The desktop runtime bridges Go and the Web frontend via a JS/TS runtime (`internal/runtime/desktop/@wailsio/runtime`). This provides window controls, eventing, and invocation bridges to Go.
## Key Data Flows (Conceptual)
1. Developer runs a CLI command (wails3) → CLI delegates to `internal/commands` and uses helpers under `internal/*` for build, generate, package, etc.
2. The application code (using `v3/pkg/*`) defines the Go-side application, services, and event handlers.
3. At runtime, the desktop bridge injects a JS runtime into the web app so frontend can call Go methods and subscribe to events. The Go-side emits events to the frontend via the runtime channel.
4. Packaging uses `internal/packager` to produce OS-native bundles, using OS-specific helpers from `pkg/mac`, `pkg/w32`, etc., as needed.
## Contributing Workflow (High-Level)
- Make small, focused changes. For cross-platform features, ensure Linux, macOS, and Windows implications are considered.
- Run example apps under `v3/examples` to validate changes.
- Use scripts under `v3/scripts` and tasks under `v3/tasks` where applicable (e.g., changelog validation or release workflows).
- When modifying the runtime bridge, ensure TypeScript builds for `@wailsio/runtime` are up-to-date and integration-tested against example apps.
## Next Steps in This Guide
This is the top-level overview. In subsequent iterations, we will deep-dive into every package and file in the `v3` directory with:
- Detailed per-package responsibilities and structure.
- File-by-file documentation including key types, functions, and data flow.
- Build, test, and troubleshooting instructions for each component.
If you need a specific package documented next, please indicate which one, and well start the in-depth coverage there.
# Deep Dive: pkg/application
Scope: This section documents every file under v3/pkg/application and explains the end-to-end data flows for how an application is initialised and then run. It complements the top-level overview above.
Last reviewed: 2025-09-24
Overview of the application package
- Purpose: Provides the public API and core runtime glue for building and running a Wails desktop application. It owns the App type and orchestrates windows, menus, dialogs, system trays, eventing, and platform-specific main loops.
- Key types:
- App: The core application object exposed to developers.
- Window/WebviewWindow: Represents a browser-hosted UI Window (WebView2 on Windows, WKWebView on macOS, WebKitGTK on Linux).
- Managers: Subsystems that manage windows, menus, dialogs, events, clipboard, screens, environment, system trays, etc.
- Options: Configuration used to create the App and its initial windows and services.
- EventProcessor and event contexts: Abstractions for custom events and application/window event flows.
Lifecycle and data flow (initialisation -> run -> shutdown)
1) Construction via New(options)
- File: application.go (New)
- Actions:
- Merge defaults (mergeApplicationDefaults) and normalize Options (application_options.go).
- Construct the App: allocate fields, set logger, prepare asset serving (middleware, asset handlers), store any initial services from options.
- Prepare developer tooling (dev vs production variants in application_dev.go/application_production.go). In dev, static server may proxy to dev server; in production, use bundled assets.
- Defer platform-specific initialization; platform-specific App (platformApp) is created later in Run() via newPlatformApp(...) implemented per-OS.
2) App.init()
- File: application.go (init method on App)
- Actions:
- Create root context (a.ctx) and cancellation function.
- Instantiate and wire all managers:
- newWindowManager, newContextMenuManager, newKeyBindingManager, newBrowserManager, newEnvironmentManager, newDialogManager, newEventManager, newMenuManager, newScreenManager, newClipboardManager, newSystemTrayManager.
- Initialize internal maps: windows, systemTrays, contextMenus, keyBindings, listener registries.
3) Pre-run hooks and service startup
- File: application.go (Run -> preRun -> service startup)
- Actions:
- preRun() executes any post-creation hooks (e.g., build/runtime settling, menu prep, assetserver finalization). If this fails, Run aborts.
- Services provided in Options.Services are started in order (startupService). On failure, an error is returned and started services are tracked for orderly shutdown.
4) Platform App creation
- File: application.go (Run)
- Calls newPlatformApp(a) which selects implementation based on GOOS:
- application_windows.go -> windowsApp
- application_darwin.go -> darwinApp (plus associated Objective-C glue .m/.h for Cocoa/WKWebView)
- application_linux.go -> gtkApp (with CGO or purego variants)
- The platformApp implements methods like run(), init(), setApplicationMenu(), setIcon(), show/hide, main-thread dispatch, window/tray registration, etc.
5) Event pump setup (concurrency and channels)
- File: application.go (Run)
- Starts goroutines to drain and dispatch internal channels:
- applicationEvents -> a.Event.handleApplicationEvent
- windowEvents -> a.handleWindowEvent
- webviewRequests -> a.handleWebViewRequest
- windowMessageBuffer -> a.handleWindowMessage
- windowKeyEvents -> a.handleWindowKeyEvent
- windowDragAndDropBuffer -> a.handleDragAndDropMessage
- menuItemClicked -> a.Menu.handleMenuItemClicked
- These goroutines run for the lifetime of the app and route messages from the platform layer and WebView bridges into App managers and windows.
6) Final run
- File: application.go (Run)
- Marks a.running = true, drains any a.pendingRun tasks scheduled before the run loop started, sets the application menu (darwin) and icon (if provided), and then calls a.impl.run() which enters the platform event loop (message pump on Windows, CFRunLoop on macOS, GTK main loop on Linux).
7) Shutdown
- File: application.go (cleanup, shutdownServices, Quit)
- Cancel root context, tear down windows/system trays/menus, stop services in reverse order, and exit the platform loop. Fatal errors use handleFatalError to log and os.Exit(1).
File-by-file guide (v3/pkg/application)
Note: Brief purpose for each file and how it participates in init/run and data flows.
Core App and options
- application.go: Defines App and its lifecycle. Key functions/methods: New, init (method), Run, cleanup, Quit, event and message handlers, Hide/Show, SetIcon, runOrDeferToAppRun. Creates managers and coordinates inter-manager communication via channels and callbacks.
- application_options.go: Defines Options for configuring the App: window defaults, asset options, logger, middlewares, platform-specific options (MacOptions, WindowsOptions, LinuxOptions), and asset server helpers. Contains middleware chaining and helpers for serving assets from fs.FS.
- services.go: Declares Service interface and service lifecycle integration with App (startupService, shutdownServices) and registration via App.RegisterService.
- environment.go / environment_manager.go: Detects and exposes environment info to the app (dev/prod, capabilities, platform variables), often referenced when preparing runtime flags and window defaults.
- errors.go: Error types, including FatalError used by handleFatalError in App.
- panic_handler.go: Centralized panic recovery where goroutines defer handlePanic() to avoid crashing the app silently.
- mainthread*.go: Utilities to ensure code runs on the GUI main thread when required by the OS toolkit; used by platformApp implementations and App.dispatchOnMainThread.
- messageprocessor*.go: Message router between WebView frontend and Go backend; different files focus on different domains (application, window, dialogs, clipboard, context menus, screens, system). They parse inbound messages (e.g., from JS runtime) and call into managers/App methods.
- bindings.go: Handles Go<->JS binding registration and call routing, including returning values/errors to the frontend via WebView.
Platform-specific app implementations
- application_windows.go: windowsApp implements platformApp for Windows. Responsibilities:
- init(): OS integration (DPI awareness, COM init as needed via WebView2 loader), building application menu, creating hidden “application” window for message routing if needed.
- run(): Enters the Windows message loop, dispatches messages to wndProc, and integrates with WebView2 (go-webview2).
- wndProc(): Translates native window messages into Wails events: focus, resize, menu select, accelerator keys, system tray clicks, drag/drop, etc., forwarding into channels consumed by App.Run goroutines.
- setApplicationMenu(), setIcon(), show/hide, registration of windows and system trays.
- logPlatformInfo() and platformEnvironment() provide environment metadata used during startup.
- application_darwin.go and related Objective-C files (.h/.m): darwinApp uses Cocoa and WKWebView. Objective-C delegate files integrate with NSApplication, NSWindow, menus, and app activation policy; bridge callbacks enqueue events into Go channels.
- application_linux.go plus linux_cgo.go/linux_purego.go: GTK-based implementation; CGO variant integrates with GTK main loop and dialogs; purego variant offers a fallback depending on build tags.
- application_dev.go / application_production.go: Build-tagged files that adjust behavior for development vs production (e.g., logger defaults, asset server wiring, runtime flags). logger_dev*.go/logger_prod.go customize logging sinks by target OS and mode.
Windows/macOS/Linux specific helpers
- keys*.go: Keyboard key codes and modifier mappings per OS; used to parse accelerators and handle key bindings.
- dialogs*.go: Platform-specific dialog implementations (message box, file open/save) backing the cross-platform dialogs.go facade.
- clipboard*.go and clipboard_manager.go: Clipboard APIs per OS.
- screen_*.go and screenmanager.go: Screen enumeration, DPI/scale factors, active screen selection; used when positioning windows.
- systemtray_*.go and system_tray_manager.go: System tray icon/menu management; events funneled through channels to App and Menu managers.
Windowing: webview window and options
- webview_window.go: The core window abstraction backed by a webviewWindowImpl (implemented per-OS). Responsibilities:
- Window creation via NewWindow(options) after App is created.
- Eventing: WindowEvent and listener registration (OnWindowEvent, RegisterHook), mapping of events to callbacks.
- Lifecycle methods: Show/Hide, Run (window-level), Close/Destroy, Focus, Resize/Move, Fullscreen/Maximise/Minimise, Zoom, ContentProtection, Frameless toggling, DevTools (per OS), ExecJS, SetHTML/URL, printing.
- Input handling: processKeyBinding and HandleKeyEvent for accelerators; integrates with menu accelerator mappings.
- Messaging bridge: HandleMessage (routes call responses and RPC from JS), DialogResponse/CallResponse, drag-and-drop (HandleDragAndDropMessage), context menus.
- Internal queues: dispatchWindowEvent, isDestroyed checks, destroyed state management.
- webview_window_options.go: Defines WebviewWindowOptions, styling and behavior (title, size, min/max constraints, position, background color, frameless, URL/HTML/Assets, debug flags, dev tools, zoom policy, theme, user agent, drag regions, etc.). Also includes GPU policy and per-OS defaults. Options feed directly into platform window creation.
- webview_window_* per-OS files: Implement webviewWindowImpl for each platform. They translate cross-platform window API to native toolkit calls and send back events via channels (e.g., windowEvents, windowMessageBuffer, windowKeyEvents).
- window.go and window_manager.go: The common Window interface and its manager. The manager tracks windows by ID, exposes Find/All/Focused, and routes broadcast events.
Menus, roles, and accelerators
- menu.go/menu_darwin.go/menu_linux.go/menu_windows.go: Cross-platform Menu representation with platform renderers. Supports app menu (macOS), window menus, and menu bar visibility.
- menuitem.go and family: MenuItem definition, roles, selectors (macOS), per-OS renderers. menuitem_roles.go defines standard roles (Copy, Paste, Quit, etc.).
- roles*.go: Dev vs production role sets.
- popupmenu_windows.go and context_menu_manager.go: Context menu helpers and manager lifecycle.
- key_binding_manager.go: Manages registration of accelerators (e.g., "CmdOrCtrl+Shift+P") and dispatches to window/menu handlers.
Dialogs
- dialogs.go: Cross-platform API for dialogs. Provides MessageDialog, OpenFileDialog, SaveFileDialog with builder-style options; delegates to per-OS implementations via messageDialogImpl/openFileDialogImpl/saveFileDialogImpl.
- dialogs_* per-OS: Bridge to native dialog toolkits (NSAlert/NSSavePanel on macOS, IFileDialog/MessageBox on Windows, GTK dialogs on Linux).
Eventing
- events.go: Custom event system for the application package. Provides:
- CustomEvent (name, data, cancellation) and ApplicationEvent/WindowEvent wrappers with Context() access to typed event contexts.
- EventProcessor to register listeners (On/Once/OnMultiple), hooks, and to Emit events. Safe for concurrent use via sync primitives.
- Bridges to pkg/events for enum types (ApplicationEventType, WindowEventType) used throughout.
- context_application_event.go, context_window_event.go: Define typed context payloads for app/window events passed to listeners (e.g., theme change info, file open URL, window IDs).
- events_common_*.go and event_manager.go: Glue code that maps platform events to high-level events and exposes App.Event API used by apps and internal subsystems.
Miscellaneous utilities
- browser_manager.go: Tracks browser/webview state across windows; used by certain operations that need to coordinate with the web runtime.
- image.go: Image helpers (e.g., RGBA), icons.
- path.go: Small helpers for path normalization when interacting with OS file dialogs or asset paths.
- urlvalidator.go: Validates URLs provided for window content (security and correctness). Unit tests in urlvalidator_test.go.
- single_instance*.go: Optional single-instance enforcement per OS; integrates with platform IPC or file locks.
- systemtray.go: Cross-platform SystemTray API given to app developers; platform-specific implementations in systemtray_*.go.
- clipboard.go: Cross-platform Clipboard API facade; platform-specific glue in clipboard_*.go.
- logger_dev*.go/logger_prod.go: Logging helpers per build mode and OS.
- TODO.md: Notes for maintainers.
Detailed init/run sequence with call graph highlights
- App creation:
1. application.New(options)
- Merges defaults; stores Options; sets up assets/middleware stack; chooses dev/prod behaviors; prepares logger.
- Does NOT start platform loop yet.
2. App.init() (method) is called by New internally to initialise managers and state.
- Run startup (application.go: Run):
3. Guard against double Run; mark starting; arrange context cancellation on failure.
4. preRun(): perform any post-construction checks and assetserver finalisation.
5. Create platform app: a.impl = newPlatformApp(a) -> application_{os}.go
- Platform impl may do platform-specific pre-main-loop init in impl.init().
6. Start services: for each options.Service, a.startupService(service) and record for shutdown order.
7. Start event pumps: spin goroutines to drain internal channels and dispatch to managers and windows (see channels list above).
8. Flip a.running = true and execute any pending runnables queued before Run (runOrDeferToAppRun).
9. Apply app-level UI state: set application menu (macOS), set icon if provided.
10. Enter platform loop: return a.impl.run(). From here, the native main loop owns the thread and dispatches native events that are bridged back into Go via callbacks and channels.
- Runtime interactions:
- Window creation: NewWindow(options) constructs a WebviewWindow, invokes platform creation, and registers it with WindowManager and platformApp. Events from native layer (resize, focus, key) become messages in windowEvents/windowMessageBuffer/windowKeyEvents and are dispatched by App handlers to per-window callbacks.
- Dialogs: The public dialog builders call through to per-OS implementations; responses are sent back via DialogResponse/DialogError into the originating Window.
- Menus and accelerators: Menu items with accelerators are registered with KeyBindingManager. Native key events are turned into accelerator strings per-OS (keys_*.go) and routed back to WebviewWindow.processKeyBinding.
- Custom events: App.Event.Emit(CustomEvent) dispatches to registered listeners and also to windows (DispatchWailsEvent) so frontends subscribed via the JS runtime receive them.
- Shutdown:
- Triggered by App.Quit(), window close that results in shouldQuit() returning true, or fatal errors.
- App.cleanup() tears down windows, trays, menus, and services in order; cancels root context; releases native resources via platformApp.destroy().
Data channels and queues (core ones referenced in application.go)
- applicationEvents: carries ApplicationEvent to App.Event handler.
- windowEvents: carries internal windowEvent to App.handleWindowEvent which locates the Window and emits a typed WindowEvent.
- webviewRequests: transports webview asset HTTP requests to the asset server pipeline (headers, middleware, handlers).
- windowMessageBuffer: messages from webview to window (RPC responses, console/log, menu clicks, etc.).
- windowKeyEvents: key accelerator strings per window; processed by WebviewWindow to run actions or menu accelerators.
- windowDragAndDropBuffer: drag-and-drop messages containing filenames and drop-zone details; dispatched to the destination window.
- menuItemClicked: menu item selection IDs enqueued by platform menu handlers and dispatched to Menu manager.
How to trace the flow yourself
- Set breakpoints in application.go Run() and platform newPlatformApp(...) to observe startup.
- On Windows, observe application_windows.go run() and wndProc() to see message dispatch into channels.
- Create a simple Example (see v3/examples) and instrument NewWindow() and WebviewWindow.HandleMessage() to see frontend<->backend calls.
- Enable dev logging (logger_dev*.go) to see debug lines emitted when events and drag-and-drop messages are processed.
Practical usage pattern (developer API surface)
- Create and configure the app:
- app := application.New(application.Options{ /* set windows, assets, menu, services, etc. */ })
- mainWindow := application.NewWindow(webview_window_options)
- mainWindow.Show()
- return app.Run()
- Register services via app.RegisterService(...) before Run().
- Use app.Event.On/Once to register for application events (ApplicationStarted, ThemeChanged, etc.).
- Use window.OnWindowEvent to subscribe to per-window events.
- Use dialogs via application.InfoDialog()/OpenFileDialog()/SaveFileDialog(), etc.
This deep dive should equip you to understand and trace how an application is initialised and run across platforms within the v3/pkg/application package.

45
DND_ANALYSIS.md Normal file
View file

@ -0,0 +1,45 @@
# Drag-and-Drop Analysis (Windows Focus)
## Overview
- Wails v3 supports two drag-and-drop surfaces when `EnableDragAndDrop` is set: a native window-level file drop channel and HTML drag/drop within the embedded webview. You can see the end-to-end flow in `v3/pkg/application/webview_window_windows.go` (native bridge) and `v3/internal/runtime/desktop/@wailsio/runtime/src/window.ts` (runtime dispatcher).
- Native drops rely on a custom `IDropTarget` implementation that gathers files/coordinates from Win32, pushes them through the Wails event system, and fan out as `events.Common.WindowDropZoneFilesDropped` with enriched context (`DropZoneDetails`, attribute map, coordinates).
- Pure HTML drag/drop (e.g. `v3/examples/html-dnd-api`) is handled entirely by the browser layer; Wails only needs to stay out of the way so standard DOM APIs operate normally.
## Native/Go Pipeline
1. When a window is created with `EnableDragAndDrop`, line ~1948 of `v3/pkg/application/webview_window_windows.go` instantiates `w32.NewDropTarget()` and (optionally) calls `chromium.AllowExternalDrag(false)` to disable WebView2s built-in file handling.
2. `EnumChildWindows` registers the COM drop target against every current child HWND. The callbacks (`OnEnter`, `OnOver`, `OnLeave`, `OnDrop`) emit Windows-specific events (`events.Windows.WindowDragEnter` etc.) via `w.parent.emit`, so listeners can react even before files are delivered.
3. `DropTarget.Drop` (see `v3/pkg/w32/idroptarget.go:69-140`) extracts filenames from the `IDataObject`, then hands control back to the window impl. Coordinates arrive as screen pixels (`POINT`), so `OnDrop` converts to window-relative coordinates and then calls `convertWindowToWebviewCoordinates` (lines ~1908-1990). Finally `InitiateFrontendDropProcessing` (in `v3/pkg/application/webview_window.go:1484-1515`) formats a JS call: `window.wails.Window.HandlePlatformFileDrop([...], x, y)`.
4. `MessageProcessor` case `WindowDropZoneDropped` (`v3/pkg/application/messageprocessor_window.go:430-488`) decodes the payload that the runtime posts back, wraps it in `DropZoneDetails`, and pushes it through the buffered `windowDragAndDropBuffer`. `App.handleDragAndDropMessage` picks it up and forwards to `WebviewWindow.HandleDragAndDropMessage`, which attaches dropped files + drop-zone metadata to the `WindowEventContext`.
5. The consumer API is the `events.Common.WindowDropZoneFilesDropped` event. The drag-n-drop example shows how to subscribe (`v3/examples/drag-n-drop/main.go:109-158`) and propagate to the frontend via custom events.
## Runtime/JS Behaviour
- `@wailsio/runtime/src/window.ts:538-680` controls the frontend side. `HandlePlatformFileDrop` locates a drop target using `document.elementFromPoint` and `closest([data-wails-dropzone])`; if nothing qualifies it returns early, so native drops that miss a registered dropzone never reach Go.
- The runtime maintains hover styling by tracking `dragenter/over/leave` on `document.documentElement` and toggling `wails-dropzone-hover`. This is how the example achieves live highlighting.
- A legacy helper still exists: `System.HandlePlatformFileDrop` in `@wailsio/runtime/src/system.ts:159-184` marshals a different payload and calls method id `ApplicationFilesDroppedWithContext`, but there is no matching handler in `messageprocessor_application.go`. That means any codepath that invokes it would receive an HTTP 400/500.
- The window runtime bundles `drag.ts`, which manages `--wails-draggable` regions so window dragging/resizing does not swallow pointer events. Developers must ensure dropzones are not also marked draggable.
## Example Insights
- `v3/examples/drag-n-drop/assets/index.html` annotates folders with `data-wails-dropzone` and demonstrates how attributes flow through to Go (`DropZoneDetails.Attributes`). It also shows that the frontend expects `dropX/dropY` in CSS pixels, which helps when validating coordinate transforms.
- `v3/examples/html-dnd-api` confirms standard HTML DnD works without the native bridge; it is a useful regression test when tweaking `drag.ts` so pointer suppression does not break DOM events.
## Potential Bug Hotspots
- **Window-level drops ignored** - `window.ts:554-569` bails if no dropzone is discovered, so the documented `WindowFilesDropped` event never fires. Users expecting “drop anywhere” support lose file payloads entirely.
- **Coordinate scaling** - `convertWindowToWebviewCoordinates` (`webview_window_windows.go:1908-1994`) computes offsets using physical pixels but never converts to WebView2 DIPs. On mixed-DPI or >100% scaling setups, `elementFromPoint` will query the wrong DOM position.
- **Drop target lifecycle** - `EnumChildWindows` runs only once during initialisation. WebView2 can spawn new `Chrome_RenderWidgetHostHWND` instances on navigation or GPU process resets, leaving them unregistered and breaking drops until the app restarts.
- **OLE cleanup** - `DropTarget.Drop` never calls `w32.DragFinish` after `DragQueryFile`. Windows docs recommend doing so to release HDROP resources; skipping it risks leaks on repeated drops.
- **Stale runtime API** - `System.HandlePlatformFileDrop` references a non-existent backend method (`messageprocessor_application.go` lacks case 100). Any future JS that follows the generated docs will fail at runtime.
- **Backpressure risk** - `windowDragAndDropBuffer` (channel size 5) blocks the HTTP handler if event consumers stall. Heavy processing in listeners could cause the runtime call to hang and, on Windows, freeze the drag cursor until the fetch resolves.
## Improvement Opportunities
1. Emit a fallback `WindowFilesDropped` event directly from `DropTarget.OnDrop` when `HandlePlatformFileDrop` declines the payload, preserving drop-anywhere behaviour.
2. Introduce DPI-aware coordinate conversion (use `globalApplication.Screen.PhysicalToDipPoint`) before invoking `elementFromPoint`.
3. Re-run `RegisterDragDrop` whenever a new WebView child window appears (CoreWebView2 `FrameCreated` / `NewBrowserVersionAvailable` callbacks) and on navigation completions.
4. Either wire up the `ApplicationFilesDroppedWithContext` method or remove the `System.HandlePlatformFileDrop` export to avoid misleading integrators.
5. Add integration tests that exercise drops on high-DPI displays and across multiple monitors using the drag-n-drop example as a harness.
6. Consider surfacing drop-target state (e.g., active element id) via diagnostic logging so Windows reports can be correlated without attaching a debugger.
## Open Questions
- Do we need to respect WebView2s native `AllowExternalDrop(true)` when `EnableDragAndDrop` is disabled, or should we expose both behaviours concurrently?
- How should conflicting CSS states (`--wails-draggable` vs `data-wails-dropzone`) be resolved? Current logic leaves it up to the developer, but documenting or enforcing precedence could prevent accidental suppression.
- Can we guarantee that `elementFromPoint` is safe when overlays or transparent windows are involved, or do we need hit-testing improvements using `elementsFromPoint`?
- Would it be safer to move drop processing entirely to Go (dispatching both window-wide and targeted events) and keep JS solely for hover styling?

246
DND_ISSUES.md Normal file
View file

@ -0,0 +1,246 @@
# Wails Drag and Drop Issues Report
## Summary
This report compiles all drag and drop related issues found in Wails v3 GitHub repository. The issues span across multiple platforms (Windows, macOS, Linux) and various versions of Wails.
---
## Issue #1: [V3] Drag-and-drop broken on Windows since alpha 19
**Title:** [V3] Drag-and-drop broken on windows since alpha 19
**Platform:** Windows 10
**Reported:** 2024-08-09
**Location:** GitHub
**Reporter:** xob0t
**Link:** https://github.com/wailsapp/wails/issues/4489
**Summary:** No drag and drop events are triggered on the Go side in Wails v3 alpha 20+. The issue appears to have been introduced by PR #4318.
**Reproduction:**
1. Run dnd example on Windows
2. Observe that no DnD events are triggered
**System:** Windows 10 Pro, Wails v3.0.0-alpha.20, AMD Ryzen 5 5600X, NVIDIA GeForce RTX 3070
---
## Issue #2: Windows 10 doesn't receive drag and drop events on the backend
**Title:** Windows 10 doesn't receive drag and drop events on the backend
**Platform:** Windows 10
**Reported:** 2025-01-07
**Location:** GitHub
**Reporter:** makew0rld
**Link:** https://github.com/wailsapp/wails/issues/3985
**Summary:** Backend drop handler registered with `runtime.OnFileDrop` never gets executed when dropping files on Windows 10, though JavaScript drop events do fire. The event is not being propagated to the backend properly.
**Reproduction:**
1. Clone https://github.com/makew0rld/wails-issue-3985
2. Build for Windows: `wails build -platform windows/amd64 -windowsconsole -debug`
3. Open the .exe in Windows
4. Open web console using right-click menu
5. Drag in a file
6. Observe nothing appears in backend console, but drop event appears in web console
**System:** Built on Arch Linux, tested on Windows 10 VM, Wails v2.9.2
---
## Issue #3: [v3] [mac] drag n drop does not work as expected after resizing window
**Title:** [v3] [mac] drag n drop does not work as expected after resizing window
**Platform:** macOS
**Reported:** 2024-09-12
**Location:** GitHub
**Reporter:** Etesam913
**Link:** https://github.com/wailsapp/wails/issues/3743
**Summary:** On macOS, after resizing the window, drag and drop usually gets rejected when trying to drag a file into the window.
**Reproduction:**
1. `git checkout v3-alpha`
2. `cd v3/examples/drag-n-drop`
3. `go run main.go`
4. Resize window
5. Drag file into window
6. File gets rejected
**System:** macOS 15.0, Apple M2, Wails v3.0.0-alpha.6
---
## Issue #4: Webview failed to set AllowExternalDrag to false on Win 10
**Title:** Webview failed to set AllowExternalDrag to false on Win 10 (after cross compile on macOS)
**Platform:** Windows 10
**Reported:** 2024-09-26
**Location:** GitHub
**Reporter:** barats
**Link:** https://github.com/wailsapp/wails/issues/3782
**Summary:** Two main issues: 1) WebView fails to set AllowExternalDrag to false, causing WebView to automatically open dragged files. 2) Backend `runtime.OnFileDrop` doesn't work - no events are triggered.
**Reproduction:**
1. Build windows/amd64 app on macOS
2. Move .exe files to Win10 and run
3. Drag and drop files into app window
4. WebView DnD not disabled, backend events not called
**System:** Built on macOS 15.0, tested on Windows 10, Wails v2.9.2
---
## Issue #5: [v2] Files DragAndDrop bugs
**Title:** [v2] Files DragAndDrop bugs
**Platform:** Linux (Ubuntu)
**Reported:** 2024-06-23
**Location:** GitHub
**Reporter:** Vovan-VE
**Link:** https://github.com/wailsapp/wails/issues/3563
**Summary:** Two issues: 1) When only `EnableFileDrop: true`, every D'n'D triggers an `OnDomReady` event. 2) When `EnableFileDrop: true, DisableWebViewDrop: true`, D'n'D doesn't work at all for files.
**Reproduction:**
```go
func (a *App) domReady(ctx context.Context) {
runtime.OnFileDropOff(ctx)
runtime.LogInfof(ctx, "DOM READY -------------------------------\n%+v", errors.New("WTF?"))
runtime.OnFileDrop(ctx, a.onFileDrop)
}
func (a *App) onFileDrop(x, y int, paths []string) {
runtime.LogInfof(a.ctx, "drop files: %#v\n%+v", paths, errors.New("WTF?"))
}
```
**System:** Ubuntu 22.04, AMD Ryzen 9 7950X, Wails v2.9.1 and v2.9.2
---
## Issue #6: File drag and drop displays file in Linux WebKit
**Title:** File drag and drop displays file in Linux WebKit
**Platform:** Linux
**Reported:** 2024-08-17
**Location:** GitHub
**Reporter:** makew0rld
**Link:** https://github.com/wailsapp/wails/issues/3686
**Summary:** When dragging and dropping a file onto the Window, the `OnFileDrop` handler runs successfully, but the entire GUI is replaced with a view of the file if the browser supports it (e.g., images, PDFs). This makes the dropped file unusable as all UI is gone.
**Reproduction:**
1. Enable file dropping and add a simple handler
2. Try and drop an image file with WebKit on Linux
3. Observe the UI get replaced with a view of the image
**System:** Arch Linux, Intel Core i7-1165G7, Wails v2.9.1
**Note:** Issue was closed on 2025-08-02 with a workaround involving preventDefault() on drop and dragover events.
---
## Issue #7: Drag And Drop "wails-drop-target-active" class issue
**Title:** Drag And Drop "wails-drop-target-active" class is only applied if cssDropProperty is set via raw `style`
**Platform:** Windows
**Reported:** 2025-07-13
**Location:** GitHub
**Reporter:** riannucci
**Link:** https://github.com/wailsapp/wails/issues/4419
**Summary:** `OnFileDrop` does not apply the `wails-drop-target-active` class unless `--wails-drop-target: drop` is set directly via the element's `style` attribute, even though the `OnFileDrop` callback does fire.
**Reproduction:**
1. Set up a new wails project
2. Set EnableFileDrop in Application Options
3. Add CSS with `--wails-drop-target: drop` in stylesheet
4. Run app and drag file to target element
5. Base path gets set but element doesn't change styles
**System:** Windows 10/11 Pro, AMD Ryzen 7 5800X3D, Wails v2.10.2
**Note:** Issue was closed on 2025-08-02. Problem was in draganddrop.js using element.style instead of getComputedStyle.
---
## Issue #8: Use a user-agent that is more recognizable by front-end code
**Title:** Use a user-agent that is more recognizable by front-end code
**Platform:** macOS
**Reported:** 2024-01-31
**Location:** GitHub
**Reporter:** hsiafan
**Link:** https://github.com/wailsapp/wails/issues/3226
**Summary:** SortableJS (drag-and-drop library) doesn't work properly in Wails' webview because the userAgent doesn't contain standard browser identifiers like 'Safari/605.1.15', causing library detection to fail.
**Reproduction:**
Libraries like SortableJS check userAgent for specific strings ('Edge', 'Firefox', 'Chrome', 'Safari') and fail to work properly when these are not present.
**System:** macOS, affects drag-and-drop libraries
---
## Issue #9: Application soft crashes when using vue-virtual-scroller on Linux
**Title:** Application soft crashes when using vue-virtual-scroller on Linux
**Platform:** Linux (Ubuntu)
**Reported:** 2024-10-22
**Location:** GitHub
**Reporter:** ysmilda
**Link:** https://github.com/wailsapp/wails/issues/3849
**Summary:** Using vue-virtual-scroller component causes the application to crash on Linux builds, rendering a grey screen and hanging the inspector window. Works fine on Windows and in dev view.
**Reproduction:**
1. Create new wails instance with `wails init -n myproject -t vue-ts`
2. Add vue-virtual-scroller component
3. Create Linux build (`wails build -tags webkit2_41`)
4. Observe crash while rendering
**System:** Ubuntu 24.04, Intel Core i7-12700, Wails v2.9.2
---
## Issue #10: [DragAndDrop] panic when dropping non-file objects
**Title:** [DragAndDrop] panic when dropping non-file objects
**Platform:** Windows
**Reported:** 2024-07-09
**Location:** GitHub
**Reporter:** Alpa-1
**Link:** https://github.com/wailsapp/wails/issues/3596
**Summary:** A panic occurs when dropping non-file objects (like strings or browser tabs) into the webview. The application crashes with a nil pointer dereference.
**Reproduction:**
1. Enable DragAndDrop
2. Add a drop target on frontend with `--wails-drop-target`
3. Register a callback with `OnFileDrop((x,y,f) => { console.log(f) }, true)`
4. Drop a Browser Tab onto the element
5. Application panics
**System:** Windows 10 Enterprise, AMD Ryzen 7 PRO 4750U, Wails v2.9.1
**Note:** Issue was closed on 2024-08-18. A simple nil check fix was provided.
---
## Common Patterns Identified:
1. **Platform-specific issues:** Windows has the most reported issues, particularly with events not reaching the backend
2. **Version regression:** Multiple reports indicate v3 alpha 19+ broke drag and drop on Windows
3. **WebView configuration:** Several issues relate to DisableWebViewDrop not working correctly
4. **Cross-platform builds:** Issues when building for Windows on other platforms
5. **Frontend/Backend disconnect:** Common pattern of JavaScript events firing but Go handlers not receiving events
6. **UI replacement on Linux:** Specific issue where dropped files replace the entire UI in WebKit
## Recommendations:
1. Focus on Windows platform issues first as they are most prevalent
2. Investigate the changes in PR #4318 which allegedly broke Windows DnD
3. Review the event propagation mechanism between frontend and backend
4. Test cross-platform builds more thoroughly
5. Improve documentation on DragAndDrop configuration options

View file

@ -16,6 +16,11 @@ includes:
dir: v3
optional: true
docs:
taskfile: docs
dir: docs
optional: true
tasks:
contributors:check:
cmds:

6
astro.config.mjs Normal file
View file

@ -0,0 +1,6 @@
import { defineConfig } from 'astro/config';
import d2 from 'astro-d2';
// https://astro.build/config
export default defineConfig({
integrations: [d2()]
});

21
docs/.gitignore vendored Normal file
View file

@ -0,0 +1,21 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store

1
docs/.npmrc Normal file
View file

@ -0,0 +1 @@
save-exact=true

4
docs/.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,4 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

11
docs/.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

1
docs/CNAME Normal file
View file

@ -0,0 +1 @@
v3alpha.wails.io

65
docs/README.md Normal file
View file

@ -0,0 +1,65 @@
# Wails v3 Documentation
[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
World-class documentation for Wails v3, redesigned following Netflix documentation principles.
## 📚 Documentation Redesign (2025-10-01)
This documentation has been completely redesigned to follow the **Netflix approach** to developer documentation:
- **Problem-first framing** - Start with why, not what
- **Progressive disclosure** - Multiple entry points for different skill levels
- **Real production examples** - No toy code
- **Story-Code-Context pattern** - Why → How → When
- **Scannable content** - Clear structure, visual aids
**Status:** Foundation complete (~20%), ready for content migration
See [IMPLEMENTATION_SUMMARY.md](./IMPLEMENTATION_SUMMARY.md) for full details.
## 🚀 Project Structure
Inside of your Astro + Starlight project, you'll see the following folders and
files:
```sh
.
├── public/
├── src/
│ ├── assets/
│ ├── content/
│ │ ├── docs/
│ │ └── config.ts
│ └── env.d.ts
├── astro.config.mjs
├── package.json
└── tsconfig.json
```
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory.
Each file is exposed as a route based on its file name.
Images can be added to `src/assets/` and embedded in Markdown with a relative
link.
Static assets, like favicons, can be placed in the `public/` directory.
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Check out [Starlights docs](https://starlight.astro.build/), read
[the Astro documentation](https://docs.astro.build), or jump into the
[Astro Discord server](https://astro.build/chat).

38
docs/Taskfile.yml Normal file
View file

@ -0,0 +1,38 @@
# https://taskfile.dev
version: '3'
vars:
# Change this to switch package managers: bun, npm, pnpm, yarn
PKG_MANAGER: bun
tasks:
setup:
summary: Setup the project (including D2 diagram tool)
preconditions:
- sh: '{{.PKG_MANAGER}} --version'
msg: "Looks like {{.PKG_MANAGER}} isn't installed."
- sh: 'go version'
msg: "Go is not installed. Install from https://go.dev/dl/"
cmds:
- '{{.PKG_MANAGER}} install'
- go install oss.terrastruct.com/d2@latest
- echo "✓ Setup complete. D2 installed to $(go env GOPATH)/bin/d2"
dev:
summary: Run the dev server
preconditions:
- sh: '{{.PKG_MANAGER}} --version'
msg: "Looks like {{.PKG_MANAGER}} isn't installed."
cmds:
- '{{.PKG_MANAGER}} run dev'
build:
summary: Build the docs
preconditions:
- sh: '{{.PKG_MANAGER}} --version'
msg: "Looks like {{.PKG_MANAGER}} isn't installed."
cmds:
- '{{.PKG_MANAGER}} run build'

342
docs/astro.config.mjs Normal file
View file

@ -0,0 +1,342 @@
// @ts-check
import { defineConfig } from "astro/config";
import starlight from "@astrojs/starlight";
import sitemap from "@astrojs/sitemap";
import starlightLinksValidator from "starlight-links-validator";
import starlightImageZoom from "starlight-image-zoom";
import starlightBlog from "starlight-blog";
import { authors } from "./src/content/authors";
import d2 from 'astro-d2';
// https://astro.build/config
export default defineConfig({
site: "https://wails.io",
trailingSlash: "ignore",
compressHTML: true,
output: "static",
build: { format: "directory" },
devToolbar: { enabled: true },
integrations: [
d2(),
sitemap(),
starlight({
title: "",
titleDelimiter: "",
logo: {
dark: "./src/assets/wails-logo-horizontal-dark.svg",
light: "./src/assets/wails-logo-horizontal-light.svg",
},
favicon: "./public/favicon.svg",
description: "Build beautiful desktop applications using Go and modern web technologies.",
pagefind: true,
customCss: ["./src/stylesheets/extra.css"],
lastUpdated: true,
pagination: true,
editLink: {
baseUrl: "https://github.com/wailsapp/wails/edit/v3-alpha/docs",
},
social: {
github: "https://github.com/wailsapp/wails",
discord: "https://discord.gg/JDdSxwjhGf",
"x.com": "https://x.com/wailsapp",
},
head: [
{
tag: 'script',
content: `
document.addEventListener('DOMContentLoaded', () => {
const socialLinks = document.querySelector('.social-icons');
if (socialLinks) {
const sponsorLink = document.createElement('a');
sponsorLink.href = 'https://github.com/sponsors/leaanthony';
sponsorLink.className = 'sl-flex';
sponsorLink.title = 'Sponsor';
sponsorLink.innerHTML = '<span class="sr-only">Sponsor</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="#ef4444" stroke="none"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/></svg>';
socialLinks.appendChild(sponsorLink);
}
});
`,
},
],
defaultLocale: "root",
locales: {
root: { label: "English", lang: "en", dir: "ltr" },
},
plugins: [
starlightImageZoom(),
starlightBlog({
title: "Wails Blog",
authors: authors,
}),
],
sidebar: [
{ label: "Home", link: "/" },
// Progressive Onboarding - Netflix Principle: Start with the problem
{ label: "Why Wails?", link: "/quick-start/why-wails" },
{
label: "Quick Start",
collapsed: false,
items: [
{ label: "Installation", link: "/quick-start/installation" },
{ label: "Your First App", link: "/quick-start/first-app" },
{ label: "Next Steps", link: "/quick-start/next-steps" },
],
},
// Tutorials
{
label: "Tutorials",
collapsed: true,
autogenerate: { directory: "tutorials" },
},
// Core Concepts
{
label: "Core Concepts",
collapsed: true,
items: [
{ label: "How Wails Works", link: "/concepts/architecture" },
{ label: "Manager API", link: "/concepts/manager-api" },
{ label: "Application Lifecycle", link: "/concepts/lifecycle" },
{ label: "Go-Frontend Bridge", link: "/concepts/bridge" },
{ label: "Build System", link: "/concepts/build-system" },
],
},
{
label: "Features",
collapsed: true,
items: [
{
label: "Windows",
collapsed: true,
items: [
{ label: "Window Basics", link: "/features/windows/basics" },
{ label: "Window Options", link: "/features/windows/options" },
{ label: "Multiple Windows", link: "/features/windows/multiple" },
{ label: "Frameless Windows", link: "/features/windows/frameless" },
{ label: "Window Events", link: "/features/windows/events" },
],
},
{
label: "Menus",
collapsed: true,
items: [
{ label: "Application Menus", link: "/features/menus/application" },
{ label: "Context Menus", link: "/features/menus/context" },
{ label: "System Tray Menus", link: "/features/menus/systray" },
{ label: "Menu Reference", link: "/features/menus/reference" },
],
},
{
label: "Bindings & Services",
collapsed: true,
items: [
{ label: "Method Binding", link: "/features/bindings/methods" },
{ label: "Services", link: "/features/bindings/services" },
{ label: "Advanced Binding", link: "/features/bindings/advanced" },
{ label: "Best Practices", link: "/features/bindings/best-practices" },
],
},
{
label: "Events",
collapsed: true,
items: [
{ label: "Event System", link: "/features/events/system" },
{ label: "Application Events", link: "/features/events/application" },
{ label: "Window Events", link: "/features/events/window" },
{ label: "Custom Events", link: "/features/events/custom" },
],
},
{
label: "Dialogs",
collapsed: true,
items: [
{ label: "File Dialogs", link: "/features/dialogs/file" },
{ label: "Message Dialogs", link: "/features/dialogs/message" },
{ label: "Custom Dialogs", link: "/features/dialogs/custom" },
],
},
{
label: "Clipboard",
collapsed: true,
autogenerate: { directory: "features/clipboard" },
},
{
label: "Browser",
collapsed: true,
autogenerate: { directory: "features/browser" },
},
{ label: "Drag & Drop", link: "/features/drag-drop" },
{
label: "Keyboard",
collapsed: true,
autogenerate: { directory: "features/keyboard" },
},
{
label: "Notifications",
collapsed: true,
autogenerate: { directory: "features/notifications" },
},
{
label: "Screens",
collapsed: true,
autogenerate: { directory: "features/screens" },
},
{
label: "Environment",
collapsed: true,
autogenerate: { directory: "features/environment" },
},
{
label: "Platform-Specific",
collapsed: true,
autogenerate: { directory: "features/platform" },
},
],
},
// Guides - Task-oriented patterns (Netflix: When to use it, when not to use it)
{
label: "Guides",
collapsed: true,
items: [
{
label: "Development",
collapsed: true,
items: [
{ label: "Project Structure", link: "/guides/dev/project-structure" },
{ label: "Development Workflow", link: "/guides/dev/workflow" },
{ label: "Debugging", link: "/guides/dev/debugging" },
{ label: "Testing", link: "/guides/dev/testing" },
],
},
{
label: "Building & Packaging",
collapsed: true,
items: [
{ label: "Building Applications", link: "/guides/build/building" },
{ label: "Build Customization", link: "/guides/build/customization" },
{ label: "Cross-Platform Builds", link: "/guides/build/cross-platform" },
{ label: "Code Signing", link: "/guides/build/signing" },
{ label: "Windows Packaging", link: "/guides/build/windows" },
{ label: "macOS Packaging", link: "/guides/build/macos" },
{ label: "Linux Packaging", link: "/guides/build/linux" },
{ label: "MSIX Packaging", link: "/guides/build/msix" },
],
},
{
label: "Distribution",
collapsed: true,
items: [
{ label: "Auto-Updates", link: "/guides/distribution/auto-updates" },
{ label: "File Associations", link: "/guides/distribution/file-associations" },
{ label: "Custom Protocols", link: "/guides/distribution/custom-protocols" },
{ label: "Single Instance", link: "/guides/distribution/single-instance" },
],
},
{
label: "Integration Patterns",
collapsed: true,
items: [
{ label: "Using Gin Router", link: "/guides/patterns/gin-routing" },
{ label: "Gin Services", link: "/guides/patterns/gin-services" },
{ label: "Database Integration", link: "/guides/patterns/database" },
{ label: "REST APIs", link: "/guides/patterns/rest-api" },
],
},
{
label: "Advanced Topics",
collapsed: true,
items: [
{ label: "Custom Templates", link: "/guides/advanced/custom-templates" },
{ label: "WML (Wails Markup)", link: "/guides/advanced/wml" },
{ label: "Panic Handling", link: "/guides/advanced/panic-handling" },
{ label: "Security Best Practices", link: "/guides/advanced/security" },
],
},
],
},
// Reference - Comprehensive API docs (Netflix: Complete technical reference)
{
label: "API Reference",
collapsed: true,
items: [
{ label: "Overview", link: "/reference/overview" },
{ label: "Application", link: "/reference/application" },
{ label: "Window", link: "/reference/window" },
{ label: "Menu", link: "/reference/menu" },
{ label: "Events", link: "/reference/events" },
{ label: "Dialogs", link: "/reference/dialogs" },
{ label: "Frontend Runtime", link: "/reference/frontend-runtime" },
{ label: "CLI", link: "/reference/cli" },
],
},
// Contributing
{
label: "Contributing",
collapsed: true,
items: [
{ label: "Getting Started", link: "/contributing/getting-started" },
{ label: "Development Setup", link: "/contributing/setup" },
{ label: "Coding Standards", link: "/contributing/standards" },
],
},
// Migration & Troubleshooting
{
label: "Migration",
collapsed: true,
items: [
{ label: "From v2 to v3", link: "/migration/v2-to-v3" },
{ label: "From Electron", link: "/migration/from-electron" },
],
},
{
label: "Troubleshooting",
collapsed: true,
autogenerate: { directory: "troubleshooting" },
},
// Community & Resources
{
label: "Community",
collapsed: true,
items: [
{ label: "Links", link: "/community/links" },
{ label: "Templates", link: "/community/templates" },
{
label: "Showcase",
collapsed: true,
items: [
{ label: "Overview", link: "/community/showcase" },
{
label: "Applications",
autogenerate: {
directory: "community/showcase",
collapsed: true,
},
},
],
},
],
},
{ label: "What's New", link: "/whats-new" },
{ label: "Status", link: "/status" },
{ label: "Changelog", link: "/changelog" },
{
label: "Sponsor",
link: "https://github.com/sponsors/leaanthony",
badge: { text: "❤️" },
},
{ label: "Credits", link: "/credits" },
],
}),
],
});

23
docs/build-output.txt Normal file
View file

@ -0,0 +1,23 @@
$ astro build
10:08:53 [WARN] [starlight-blog-plugin] It looks like you already have a `MarkdownContent` component override in your Starlight configuration.
10:08:53 [WARN] [starlight-blog-plugin] To use `starlight-blog`, either remove your override or update it to render the content from `starlight-blog/overrides/MarkdownContent.astro`.
10:08:54 [content] Syncing content
10:08:54 [WARN] [glob-loader] The base directory "E:\wails\docs\src\content\i18n\" does not exist.
10:08:55 [WARN] [astro-expressive-code] Error while loading code block language "pseudo" in document "E:\wails\docs\src\content\docs\DEVELOPER_GUIDE.md". Using "txt" instead. You can add custom languages using the "langs" config option. Error details: Unknown language "pseudo"
10:08:55 [WARN] [astro-expressive-code] Error while loading code block language "pseudo" in document "E:\wails\docs\src\content\docs\DEVELOPER_GUIDE.md". Using "txt" instead. You can add custom languages using the "langs" config option. Error details: Unknown language "pseudo"
10:08:55 [WARN] [astro-expressive-code] Error while loading code block language "pseudo" in document "E:\wails\docs\src\content\docs\DEVELOPER_GUIDE.md". Using "txt" instead. You can add custom languages using the "langs" config option. Error details: Unknown language "pseudo"
10:08:55 [WARN] [astro-expressive-code] Error while loading code block language "pseudo" in document "E:\wails\docs\src\content\docs\DEVELOPER_GUIDE.md". Using "txt" instead. You can add custom languages using the "langs" config option. Error details: Unknown language "pseudo"
10:08:55 [WARN] [astro-expressive-code] Error while loading code block language "pseudo" in document "E:\wails\docs\src\content\docs\DEVELOPER_GUIDE.md". Using "txt" instead. You can add custom languages using the "langs" config option. Error details: Unknown language "pseudo"
10:08:55 [WARN] [astro-expressive-code] Error while loading code block language "pseudo" in document "E:\wails\docs\src\content\docs\DEVELOPER_GUIDE.md". Using "txt" instead. You can add custom languages using the "langs" config option. Error details: Unknown language "pseudo"
10:08:55 [WARN] [astro-expressive-code] Error while loading code block language "pseudo" in document "E:\wails\docs\src\content\docs\DEVELOPER_GUIDE.md". Using "txt" instead. You can add custom languages using the "langs" config option. Error details: Unknown language "pseudo"
10:08:55 [WARN] [astro-expressive-code] Error while loading code block language "pseudo" in document "E:\wails\docs\src\content\docs\DEVELOPER_GUIDE.md". Using "txt" instead. You can add custom languages using the "langs" config option. Error details: Unknown language "pseudo"
bad indentation of a mapping entry
Location:
E:\wails\docs\src\content\docs\learn\context-menu.mdx:3:7
Stack trace:
at generateError (file:///E:/wails/docs/node_modules/js-yaml/dist/js-yaml.mjs:1273:10)
at readBlockMapping (file:///E:/wails/docs/node_modules/js-yaml/dist/js-yaml.mjs:2272:7)
at readDocument (file:///E:/wails/docs/node_modules/js-yaml/dist/js-yaml.mjs:2715:3)
at load$1 (file:///E:/wails/docs/node_modules/js-yaml/dist/js-yaml.mjs:2804:19)
at safeParseFrontmatter (file:///E:/wails/docs/node_modules/@astrojs/mdx/dist/utils.js:33:12)
error: script "astro" exited with code 1

1560
docs/bun.lock Normal file

File diff suppressed because it is too large Load diff

33
docs/create-dirs.ps1 Normal file
View file

@ -0,0 +1,33 @@
$dirs = @(
"src/content/docs/quick-start",
"src/content/docs/concepts",
"src/content/docs/features/windows",
"src/content/docs/features/menus",
"src/content/docs/features/bindings",
"src/content/docs/features/events",
"src/content/docs/features/dialogs",
"src/content/docs/features/platform",
"src/content/docs/guides/dev",
"src/content/docs/guides/build",
"src/content/docs/guides/distribution",
"src/content/docs/guides/patterns",
"src/content/docs/guides/advanced",
"src/content/docs/reference/application",
"src/content/docs/reference/window",
"src/content/docs/reference/menu",
"src/content/docs/reference/events",
"src/content/docs/reference/dialogs",
"src/content/docs/reference/runtime",
"src/content/docs/reference/cli",
"src/content/docs/contributing/architecture",
"src/content/docs/contributing/codebase",
"src/content/docs/contributing/workflows",
"src/content/docs/migration"
)
foreach ($dir in $dirs) {
New-Item -ItemType Directory -Force -Path $dir | Out-Null
Write-Host "Created: $dir"
}
Write-Host "`nAll directories created successfully!"

9344
docs/package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

31
docs/package.json Normal file
View file

@ -0,0 +1,31 @@
{
"name": "wails-docs",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@astrojs/check": "^0.9.4",
"@astrojs/react": "^4.1.0",
"@astrojs/starlight": "^0.30.0",
"@types/react": "^19.0.1",
"@types/react-dom": "^19.0.2",
"astro": "^5.0.0",
"astro-d2": "^0.5.0",
"framer-motion": "^11.14.4",
"motion": "^11.14.4",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"sharp": "^0.33.5",
"starlight-blog": "^0.15.0",
"starlight-image-zoom": "^0.9.0",
"starlight-links-validator": "^0.13.4",
"starlight-showcases": "^0.2.0",
"typescript": "^5.7.2"
}
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 38 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 33 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

1
docs/public/favicon.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" version="1.1" viewBox="0 0 550 310" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><g><path d="M0.883,-0.081L0.121,0.081L0.256,-0.063L0.883,-0.081Z" transform="matrix(-166.599,4.57132,4.57132,166.599,147.403,167.648)" style="fill:url(#_Linear1);fill-rule:nonzero"/></g><g><path d="M0.878,-0.285L-0.073,0.71L-1.186,0.542L0.015,0.207L-0.846,0.077L0.355,-0.258L-0.505,-0.388L0.649,-0.71L0.878,-0.285Z" transform="matrix(-106.443,-16.0669,-16.0669,106.443,428.19,188.033)" style="fill:url(#_Linear2);fill-rule:nonzero"/></g><g><path d="M0.44,-0.04L0.265,-0.056L0.177,0.437L-0.311,-0.255L0.262,-0.437L0.568,-0.437L0.44,-0.04Z" transform="matrix(-114.484,-162.408,-162.408,114.484,333.291,285.804)" style="fill:url(#_Linear3);fill-rule:nonzero"/></g><g><path d="M0.622,-0.115L0.761,-0.115L0.806,-0.013L0.826,0.182L0.622,-0.115Z" transform="matrix(238.126,298.893,298.893,-238.126,113.516,-150.536)" style="fill:url(#_Linear4);fill-rule:nonzero"/></g><g><path d="M0.467,0.005L0.49,0.062L0.271,-0.062L0.467,0.005Z" transform="matrix(-369.529,-97.4118,-97.4118,369.529,582.38,94.027)" style="fill:url(#_Linear5);fill-rule:nonzero"/></g><g><path d="M0.2,0.001L0.219,-0.018L0.614,0.012L0.519,0.089L0.282,0.068L0.2,0.135L0.463,0.194L0.374,0.266L0.138,0.186L0.047,0.033L-0.131,-0.266L0.2,0.001Z" transform="matrix(-496.156,-53.9751,-53.9751,496.156,367.888,125.085)" style="fill:url(#_Linear6);fill-rule:nonzero"/></g><g><path d="M269.095,104.527L287.764,111.419L263.632,106.75L269.095,104.527Z" transform="matrix(0.436503,-1.22916,4.88651,1.73532,-368.043,253.619)" style="fill:#fff"/></g><defs><linearGradient id="_Linear1" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,-3.46945e-18,3.46945e-18,1,0,-3.05761e-06)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear2" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,0,0,1,0,-2.75467e-06)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear3" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,-1.11022e-16,1.11022e-16,1,0,-2.61861e-06)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear4" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(-0.801899,-0.59746,0.59746,-0.801899,1.3495,0.447457)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear5" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,-2.77556e-17,2.77556e-17,1,0,-1.92826e-06)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear6" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,0,0,1,0,9.68429e-07)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient></defs></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
docs/public/missing.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,246 @@
<div class="container">
<!--GAMFC_DELIMITER-->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/leaanthony"><img src="https://avatars.githubusercontent.com/u/1943904?v=4?s=75" width="75px;" alt="Lea Anthony"/><br /><sub><b>Lea Anthony</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=leaanthony" title="Code">💻</a> <a href="#ideas-leaanthony" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-leaanthony" title="Design">🎨</a> <a href="#content-leaanthony" title="Content">🖋</a> <a href="#example-leaanthony" title="Examples">💡</a> <a href="#mentoring-leaanthony" title="Mentoring">🧑‍🏫</a> <a href="#projectManagement-leaanthony" title="Project Management">📆</a> <a href="#tool-leaanthony" title="Tools">🔧</a> <a href="https://github.com/wailsapp/wails/yssues?q=author%3Aleaanthony" title="Bug reports">🐛</a> <a href="#blog-leaanthony" title="Blogposts">📝</a> <a href="#maintenance-leaanthony" title="Maintenance">🚧</a> <a href="#platform-leaanthony" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Aleaanthony" title="Reviewed Pull Requests">👀</a> <a href="#question-leaanthony" title="Answering Questions">💬</a> <a href="#research-leaanthony" title="Research">🔬</a> <a href="https://github.com/wailsapp/wails/commits?author=leaanthony" title="Tests">⚠️</a> <a href="#tutorial-leaanthony" title="Tutorials"></a> <a href="#talk-leaanthony" title="Talks">📢</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Aleaanthony" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/wailsapp/wails/commits?author=leaanthony" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/stffabi"><img src="https://avatars.githubusercontent.com/u/9464631?v=4?s=75" width="75px;" alt="stffabi"/><br /><sub><b>stffabi</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=stffabi" title="Code">💻</a> <a href="#ideas-stffabi" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-stffabi" title="Design">🎨</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Astffabi" title="Bug reports">🐛</a> <a href="#maintenance-stffabi" title="Maintenance">🚧</a> <a href="#platform-stffabi" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Astffabi" title="Reviewed Pull Requests">👀</a> <a href="#question-stffabi" title="Answering Questions">💬</a> <a href="#research-stffabi" title="Research">🔬</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Astffabi" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/wailsapp/wails/commits?author=stffabi" title="Documentation">📖</a> <a href="https://github.com/wailsapp/wails/commits?author=stffabi" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tmclane"><img src="https://avatars.githubusercontent.com/u/511975?v=4?s=75" width="75px;" alt="Travis McLane"/><br /><sub><b>Travis McLane</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=tmclane" title="Code">💻</a> <a href="#research-tmclane" title="Research">🔬</a> <a href="#platform-tmclane" title="Packaging/porting to new platform">📦</a> <a href="#ideas-tmclane" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Atmclane" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Atmclane" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/wailsapp/wails/commits?author=tmclane" title="Tests">⚠️</a> <a href="#question-tmclane" title="Answering Questions">💬</a> <a href="https://github.com/wailsapp/wails/commits?author=tmclane" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://misitebao.com/"><img src="https://avatars.githubusercontent.com/u/28185258?v=4?s=75" width="75px;" alt="Misite Bao"/><br /><sub><b>Misite Bao</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=misitebao" title="Documentation">📖</a> <a href="#translation-misitebao" title="Translation">🌍</a> <a href="#research-misitebao" title="Research">🔬</a> <a href="#maintenance-misitebao" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/bh90210"><img src="https://avatars.githubusercontent.com/u/22690219?v=4?s=75" width="75px;" alt="Byron Chris"/><br /><sub><b>Byron Chris</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=bh90210" title="Code">💻</a> <a href="#research-bh90210" title="Research">🔬</a> <a href="#maintenance-bh90210" title="Maintenance">🚧</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Abh90210" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Abh90210" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/wailsapp/wails/commits?author=bh90210" title="Tests">⚠️</a> <a href="#question-bh90210" title="Answering Questions">💬</a> <a href="#ideas-bh90210" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-bh90210" title="Design">🎨</a> <a href="#platform-bh90210" title="Packaging/porting to new platform">📦</a> <a href="#infra-bh90210" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/konez2k"><img src="https://avatars.githubusercontent.com/u/32417933?v=4?s=75" width="75px;" alt="konez2k"/><br /><sub><b>konez2k</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=konez2k" title="Code">💻</a> <a href="#platform-konez2k" title="Packaging/porting to new platform">📦</a> <a href="#ideas-konez2k" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/dedo1911"><img src="https://avatars.githubusercontent.com/u/1364496?v=4?s=75" width="75px;" alt="Dario Emerson"/><br /><sub><b>Dario Emerson</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=dedo1911" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Adedo1911" title="Bug reports">🐛</a> <a href="#ideas-dedo1911" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=dedo1911" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://ianmjones.com/"><img src="https://avatars.githubusercontent.com/u/4710?v=4?s=75" width="75px;" alt="Ian M. Jones"/><br /><sub><b>Ian M. Jones</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ianmjones" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aianmjones" title="Bug reports">🐛</a> <a href="#ideas-ianmjones" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=ianmjones" title="Tests">⚠️</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Aianmjones" title="Reviewed Pull Requests">👀</a> <a href="#platform-ianmjones" title="Packaging/porting to new platform">📦</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/marktohark"><img src="https://avatars.githubusercontent.com/u/19359934?v=4?s=75" width="75px;" alt="marktohark"/><br /><sub><b>marktohark</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=marktohark" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/rh12503"><img src="https://avatars.githubusercontent.com/u/48951973?v=4?s=75" width="75px;" alt="Ryan H"/><br /><sub><b>Ryan H</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=rh12503" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://codybentley.dev/"><img src="https://avatars.githubusercontent.com/u/6968902?v=4?s=75" width="75px;" alt="Cody Bentley"/><br /><sub><b>Cody Bentley</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=codydbentley" title="Code">💻</a> <a href="#platform-codydbentley" title="Packaging/porting to new platform">📦</a> <a href="#ideas-codydbentley" title="Ideas, Planning, & Feedback">🤔</a> <a href="#financial-codydbentley" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/napalu"><img src="https://avatars.githubusercontent.com/u/6690378?v=4?s=75" width="75px;" alt="Florent"/><br /><sub><b>Florent</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=napalu" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Anapalu" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/akhudek"><img src="https://avatars.githubusercontent.com/u/147633?v=4?s=75" width="75px;" alt="Alexander Hudek"/><br /><sub><b>Alexander Hudek</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=akhudek" title="Code">💻</a> <a href="#financial-akhudek" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://twitter.com/timkippdev"><img src="https://avatars.githubusercontent.com/u/37030721?v=4?s=75" width="75px;" alt="Tim Kipp"/><br /><sub><b>Tim Kipp</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=timkippdev" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/gelleson"><img src="https://avatars.githubusercontent.com/u/44272887?v=4?s=75" width="75px;" alt="Altynbek Kaliakbarov"/><br /><sub><b>Altynbek Kaliakbarov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=gelleson" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Chronophylos"><img src="https://avatars.githubusercontent.com/u/14890588?v=4?s=75" width="75px;" alt="Nikolai Zimmermann"/><br /><sub><b>Nikolai Zimmermann</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Chronophylos" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/k-muchmore"><img src="https://avatars.githubusercontent.com/u/16393095?v=4?s=75" width="75px;" alt="k-muchmore"/><br /><sub><b>k-muchmore</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=k-muchmore" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://peakd.com/@snider"><img src="https://avatars.githubusercontent.com/u/631881?v=4?s=75" width="75px;" alt="Snider"/><br /><sub><b>Snider</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Snider" title="Code">💻</a> <a href="#ideas-Snider" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=Snider" title="Documentation">📖</a> <a href="#financial-Snider" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/albert-sun"><img src="https://avatars.githubusercontent.com/u/54585592?v=4?s=75" width="75px;" alt="Albert Sun"/><br /><sub><b>Albert Sun</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=albert-sun" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/commits?author=albert-sun" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/adalessa"><img src="https://avatars.githubusercontent.com/u/7914601?v=4?s=75" width="75px;" alt="Ariel"/><br /><sub><b>Ariel</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=adalessa" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aadalessa" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://triplebits.com/"><img src="https://avatars.githubusercontent.com/u/4365245?v=4?s=75" width="75px;" alt="Ilgıt Yıldırım"/><br /><sub><b>Ilgıt Yıldırım</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ilgityildirim" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Ailgityildirim" title="Bug reports">🐛</a> <a href="#financial-ilgityildirim" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Vaelatern"><img src="https://avatars.githubusercontent.com/u/7906072?v=4?s=75" width="75px;" alt="Toyam Cox"/><br /><sub><b>Toyam Cox</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Vaelatern" title="Code">💻</a> <a href="#platform-Vaelatern" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AVaelatern" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/hi019"><img src="https://avatars.githubusercontent.com/u/65871571?v=4?s=75" width="75px;" alt="hi019"/><br /><sub><b>hi019</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=hi019" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Ahi019" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://artooro.com/"><img src="https://avatars.githubusercontent.com/u/393395?v=4?s=75" width="75px;" alt="Arthur Wiebe"/><br /><sub><b>Arthur Wiebe</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=artooro" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aartooro" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://sectcs.com/"><img src="https://avatars.githubusercontent.com/u/16898783?v=4?s=75" width="75px;" alt="Balakrishna Prasad Ganne"/><br /><sub><b>Balakrishna Prasad Ganne</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=aayush420" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/BillBuilt"><img src="https://avatars.githubusercontent.com/u/28831382?v=4?s=75" width="75px;" alt="BillBuilt"/><br /><sub><b>BillBuilt</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=BillBuilt" title="Code">💻</a> <a href="#platform-BillBuilt" title="Packaging/porting to new platform">📦</a> <a href="#ideas-BillBuilt" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-BillBuilt" title="Answering Questions">💬</a> <a href="#financial-BillBuilt" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Juneezee"><img src="https://avatars.githubusercontent.com/u/20135478?v=4?s=75" width="75px;" alt="Eng Zer Jun"/><br /><sub><b>Eng Zer Jun</b></sub></a><br /><a href="#maintenance-Juneezee" title="Maintenance">🚧</a> <a href="https://github.com/wailsapp/wails/commits?author=Juneezee" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://lgiki.net/"><img src="https://avatars.githubusercontent.com/u/20807713?v=4?s=75" width="75px;" alt="LGiki"/><br /><sub><b>LGiki</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=LGiki" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/lontten"><img src="https://avatars.githubusercontent.com/u/30745595?v=4?s=75" width="75px;" alt="Lontten"/><br /><sub><b>Lontten</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=lontten" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/phoenix147"><img src="https://avatars.githubusercontent.com/u/809358?v=4?s=75" width="75px;" alt="Lukas Crepaz"/><br /><sub><b>Lukas Crepaz</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=phoenix147" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aphoenix147" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://utf9k.net/"><img src="https://avatars.githubusercontent.com/u/14816406?v=4?s=75" width="75px;" alt="Marcus Crane"/><br /><sub><b>Marcus Crane</b></sub></a><br /><a href="https://github.com/wailsapp/wails/issues?q=author%3Amarcus-crane" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/commits?author=marcus-crane" title="Documentation">📖</a> <a href="#financial-marcus-crane" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://qaisjp.com/"><img src="https://avatars.githubusercontent.com/u/923242?v=4?s=75" width="75px;" alt="Qais Patankar"/><br /><sub><b>Qais Patankar</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=qaisjp" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://wakefulcloud.dev/"><img src="https://avatars.githubusercontent.com/u/38930607?v=4?s=75" width="75px;" alt="Wakeful-Cloud"/><br /><sub><b>Wakeful-Cloud</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Wakeful-Cloud" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AWakeful-Cloud" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Lyimmi"><img src="https://avatars.githubusercontent.com/u/8627125?v=4?s=75" width="75px;" alt="Zámbó, Levente"/><br /><sub><b>Zámbó, Levente</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Lyimmi" title="Code">💻</a> <a href="#platform-Lyimmi" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3ALyimmi" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/commits?author=Lyimmi" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Ironpark"><img src="https://avatars.githubusercontent.com/u/4973597?v=4?s=75" width="75px;" alt="Ironpark"/><br /><sub><b>Ironpark</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Ironpark" title="Code">💻</a> <a href="#ideas-Ironpark" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/mondy"><img src="https://avatars.githubusercontent.com/u/3961824?v=4?s=75" width="75px;" alt="mondy"/><br /><sub><b>mondy</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=mondy" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/commits?author=mondy" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://ryben.dev/"><img src="https://avatars.githubusercontent.com/u/6241454?v=4?s=75" width="75px;" alt="Benjamin Ryan"/><br /><sub><b>Benjamin Ryan</b></sub></a><br /><a href="https://github.com/wailsapp/wails/issues?q=author%3Aredraskal" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fallendusk"><img src="https://avatars.githubusercontent.com/u/565631?v=4?s=75" width="75px;" alt="fallendusk"/><br /><sub><b>fallendusk</b></sub></a><br /><a href="#platform-fallendusk" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/commits?author=fallendusk" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://twitter.com/matryer"><img src="https://avatars.githubusercontent.com/u/101659?v=4?s=75" width="75px;" alt="Mat Ryer"/><br /><sub><b>Mat Ryer</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=matryer" title="Code">💻</a> <a href="#ideas-matryer" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Amatryer" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/abtin"><img src="https://avatars.githubusercontent.com/u/441372?v=4?s=75" width="75px;" alt="Abtin"/><br /><sub><b>Abtin</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=abtin" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aabtin" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/lanzafame"><img src="https://avatars.githubusercontent.com/u/5924712?v=4?s=75" width="75px;" alt="Adrian Lanzafame"/><br /><sub><b>Adrian Lanzafame</b></sub></a><br /><a href="#platform-lanzafame" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/commits?author=lanzafame" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/polikow"><img src="https://avatars.githubusercontent.com/u/58259700?v=4?s=75" width="75px;" alt="Aleksey Polyakov"/><br /><sub><b>Aleksey Polyakov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/issues?q=author%3Apolikow" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/commits?author=polikow" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/alexmat"><img src="https://avatars.githubusercontent.com/u/745421?v=4?s=75" width="75px;" alt="Alexander Matviychuk"/><br /><sub><b>Alexander Matviychuk</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=alexmat" title="Code">💻</a> <a href="#platform-alexmat" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/AlienRecall"><img src="https://avatars.githubusercontent.com/u/68950287?v=4?s=75" width="75px;" alt="AlienRecall"/><br /><sub><b>AlienRecall</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=AlienRecall" title="Code">💻</a> <a href="#platform-AlienRecall" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://blog.checkyo.tech/"><img src="https://avatars.githubusercontent.com/u/17457975?v=4?s=75" width="75px;" alt="Aman"/><br /><sub><b>Aman</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=achhabra2" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/amaury-tobias"><img src="https://avatars.githubusercontent.com/u/37311888?v=4?s=75" width="75px;" alt="Amaury Tobias Quiroz"/><br /><sub><b>Amaury Tobias Quiroz</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=amaury-tobias" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aamaury-tobias" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="http://blog.nms.de/"><img src="https://avatars.githubusercontent.com/u/51517?v=4?s=75" width="75px;" alt="Andreas Wenk"/><br /><sub><b>Andreas Wenk</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=andywenk" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/stankovic98"><img src="https://avatars.githubusercontent.com/u/29852655?v=4?s=75" width="75px;" alt="Antonio Stanković"/><br /><sub><b>Antonio Stanković</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=stankovic98" title="Code">💻</a> <a href="#platform-stankovic98" title="Packaging/porting to new platform">📦</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/antimatter96"><img src="https://avatars.githubusercontent.com/u/12068176?v=4?s=75" width="75px;" alt="Arpit Jain"/><br /><sub><b>Arpit Jain</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=antimatter96" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/aschey"><img src="https://avatars.githubusercontent.com/u/5882266?v=4?s=75" width="75px;" alt="Austin Schey"/><br /><sub><b>Austin Schey</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=aschey" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aaschey" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/benjamin-thomas"><img src="https://avatars.githubusercontent.com/u/1557738?v=4?s=75" width="75px;" alt="Benjamin Thomas"/><br /><sub><b>Benjamin Thomas</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=benjamin-thomas" title="Code">💻</a> <a href="#platform-benjamin-thomas" title="Packaging/porting to new platform">📦</a> <a href="#ideas-benjamin-thomas" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://www.bertramtruong.com/"><img src="https://avatars.githubusercontent.com/u/1100843?v=4?s=75" width="75px;" alt="Bertram Truong"/><br /><sub><b>Bertram Truong</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=bt" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Abt" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="http://techwizworld.net/"><img src="https://avatars.githubusercontent.com/u/175873?v=4?s=75" width="75px;" alt="Blake Bourque"/><br /><sub><b>Blake Bourque</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=TechplexEngineer" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="http://vk.com/raitonoberu"><img src="https://avatars.githubusercontent.com/u/64320078?v=4?s=75" width="75px;" alt="Denis"/><br /><sub><b>Denis</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=raitonoberu" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/diogox"><img src="https://avatars.githubusercontent.com/u/13244408?v=4?s=75" width="75px;" alt="diogox"/><br /><sub><b>diogox</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=diogox" title="Code">💻</a> <a href="#platform-diogox" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/kyoto44"><img src="https://avatars.githubusercontent.com/u/17720761?v=4?s=75" width="75px;" alt="Dmitry Gomzyakov"/><br /><sub><b>Dmitry Gomzyakov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=kyoto44" title="Code">💻</a> <a href="#platform-kyoto44" title="Packaging/porting to new platform">📦</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/edwardbrowncross"><img src="https://avatars.githubusercontent.com/u/35063432?v=4?s=75" width="75px;" alt="Edward Browncross"/><br /><sub><b>Edward Browncross</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=edwardbrowncross" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="http://pr0gramming.ca/"><img src="https://avatars.githubusercontent.com/u/14944216?v=4?s=75" width="75px;" alt="Elie Grenon"/><br /><sub><b>Elie Grenon</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=elie-g" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fdidron"><img src="https://avatars.githubusercontent.com/u/1848786?v=4?s=75" width="75px;" alt="Florian Didron"/><br /><sub><b>Florian Didron</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=fdidron" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Afdidron" title="Bug reports">🐛</a> <a href="#ideas-fdidron" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=fdidron" title="Tests">⚠️</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Afdidron" title="Reviewed Pull Requests">👀</a> <a href="#platform-fdidron" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/GargantuaX"><img src="https://avatars.githubusercontent.com/u/14013111?v=4?s=75" width="75px;" alt="GargantuaX"/><br /><sub><b>GargantuaX</b></sub></a><br /><a href="#financial-GargantuaX" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://bednya.ga/"><img src="https://avatars.githubusercontent.com/u/12101721?v=4?s=75" width="75px;" alt="Igor Minin"/><br /><sub><b>Igor Minin</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Igogrek" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AIgogrek" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://www.jae-sung.com/"><img src="https://avatars.githubusercontent.com/u/39658806?v=4?s=75" width="75px;" alt="Jae-Sung Lee"/><br /><sub><b>Jae-Sung Lee</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=jaesung9507" title="Code">💻</a> <a href="#ideas-jaesung9507" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Jarek-SRT"><img src="https://avatars.githubusercontent.com/u/3391365?v=4?s=75" width="75px;" alt="Jarek"/><br /><sub><b>Jarek</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Jarek-SRT" title="Code">💻</a> <a href="#platform-Jarek-SRT" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Junkher"><img src="https://avatars.githubusercontent.com/u/85776620?v=4?s=75" width="75px;" alt="Junker"/><br /><sub><b>Junker</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Junkher" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/kraney"><img src="https://avatars.githubusercontent.com/u/5760081?v=4?s=75" width="75px;" alt="Kris Raney"/><br /><sub><b>Kris Raney</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=kraney" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Akraney" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/LukenSkyne"><img src="https://avatars.githubusercontent.com/u/29918069?v=4?s=75" width="75px;" alt="Luken"/><br /><sub><b>Luken</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=LukenSkyne" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://markstenglein.com/"><img src="https://avatars.githubusercontent.com/u/9255772?v=4?s=75" width="75px;" alt="Mark Stenglein"/><br /><sub><b>Mark Stenglein</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ocelotsloth" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aocelotsloth" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/buddyabaddon"><img src="https://avatars.githubusercontent.com/u/33861511?v=4?s=75" width="75px;" alt="buddyabaddon"/><br /><sub><b>buddyabaddon</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=buddyabaddon" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/MikeSchaap"><img src="https://avatars.githubusercontent.com/u/35368821?v=4?s=75" width="75px;" alt="MikeSchaap"/><br /><sub><b>MikeSchaap</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=MikeSchaap" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AMikeSchaap" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Orijhins"><img src="https://avatars.githubusercontent.com/u/47521598?v=4?s=75" width="75px;" alt="NYSSEN Michaël"/><br /><sub><b>NYSSEN Michaël</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Orijhins" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AOrijhins" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/NanoNik"><img src="https://avatars.githubusercontent.com/u/11991329?v=4?s=75" width="75px;" alt="Nan0"/><br /><sub><b>Nan0</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=NanoNik" title="Code">💻</a> <a href="#ideas-NanoNik" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=NanoNik" title="Tests">⚠️</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3ANanoNik" title="Reviewed Pull Requests">👀</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/marcio199226"><img src="https://avatars.githubusercontent.com/u/10244404?v=4?s=75" width="75px;" alt="oskar"/><br /><sub><b>oskar</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=marcio199226" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/pierrejoye"><img src="https://avatars.githubusercontent.com/u/282408?v=4?s=75" width="75px;" alt="Pierre Joye"/><br /><sub><b>Pierre Joye</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=pierrejoye" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Apierrejoye" title="Bug reports">🐛</a> <a href="#ideas-pierrejoye" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=pierrejoye" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Rested"><img src="https://avatars.githubusercontent.com/u/2003608?v=4?s=75" width="75px;" alt="Reuben Thomas-Davis"/><br /><sub><b>Reuben Thomas-Davis</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Rested" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3ARested" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/mewmew"><img src="https://avatars.githubusercontent.com/u/1414531?v=4?s=75" width="75px;" alt="Robin"/><br /><sub><b>Robin</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=mewmew" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Amewmew" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://threema.id/YSB3TVF7"><img src="https://avatars.githubusercontent.com/u/70367451?v=4?s=75" width="75px;" alt="Sebastian Bauer"/><br /><sub><b>Sebastian Bauer</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=sebastian0x62" title="Code">💻</a> <a href="#ideas-sebastian0x62" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=sebastian0x62" title="Tests">⚠️</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Asebastian0x62" title="Reviewed Pull Requests">👀</a> <a href="#question-sebastian0x62" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/sidwebworks"><img src="https://avatars.githubusercontent.com/u/58144379?v=4?s=75" width="75px;" alt="Sidharth Rathi"/><br /><sub><b>Sidharth Rathi</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=sidwebworks" title="Documentation">📖</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Asidwebworks" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/sithembiso"><img src="https://avatars.githubusercontent.com/u/6559905?v=4?s=75" width="75px;" alt="Sithembiso Khumalo"/><br /><sub><b>Sithembiso Khumalo</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=sithembiso" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Asithembiso" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/LanguageAgnostic"><img src="https://avatars.githubusercontent.com/u/19310562?v=4?s=75" width="75px;" alt="Soheib El-Harrache"/><br /><sub><b>Soheib El-Harrache</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=LanguageAgnostic" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3ALanguageAgnostic" title="Bug reports">🐛</a> <a href="#financial-LanguageAgnostic" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://www.sophieau.com/"><img src="https://avatars.githubusercontent.com/u/11145039?v=4?s=75" width="75px;" alt="Sophie Au"/><br /><sub><b>Sophie Au</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=SophieAu" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3ASophieAu" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/stefpap"><img src="https://avatars.githubusercontent.com/u/22637722?v=4?s=75" width="75px;" alt="Stefanos Papadakis"/><br /><sub><b>Stefanos Papadakis</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=stefpap" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Astefpap" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/s12chung"><img src="https://avatars.githubusercontent.com/u/263394?v=4?s=75" width="75px;" alt="Steve Chung"/><br /><sub><b>Steve Chung</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=s12chung" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3As12chung" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://tortloff.de/"><img src="https://avatars.githubusercontent.com/u/41272726?v=4?s=75" width="75px;" alt="Timm Ortloff"/><br /><sub><b>Timm Ortloff</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=TAINCER" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tomanagle"><img src="https://avatars.githubusercontent.com/u/8683577?v=4?s=75" width="75px;" alt="Tom"/><br /><sub><b>Tom</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=tomanagle" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/valentintrinque"><img src="https://avatars.githubusercontent.com/u/4662842?v=4?s=75" width="75px;" alt="Valentin Trinqué"/><br /><sub><b>Valentin Trinqué</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ValentinTrinque" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AValentinTrinque" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://mattn.kaoriya.net/"><img src="https://avatars.githubusercontent.com/u/10111?v=4?s=75" width="75px;" alt="mattn"/><br /><sub><b>mattn</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=mattn" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Amattn" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/bearsh"><img src="https://avatars.githubusercontent.com/u/1089356?v=4?s=75" width="75px;" alt="bearsh"/><br /><sub><b>bearsh</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=bearsh" title="Code">💻</a> <a href="#ideas-bearsh" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=bearsh" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/chenxiao1990"><img src="https://avatars.githubusercontent.com/u/16933565?v=4?s=75" width="75px;" alt="chenxiao"/><br /><sub><b>chenxiao</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=chenxiao1990" title="Code">💻</a> <a href="#ideas-chenxiao1990" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=chenxiao1990" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fengweiqiang"><img src="https://avatars.githubusercontent.com/u/22905300?v=4?s=75" width="75px;" alt="fengweiqiang"/><br /><sub><b>fengweiqiang</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=fengweiqiang" title="Code">💻</a> <a href="#platform-fengweiqiang" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/flin7"><img src="https://avatars.githubusercontent.com/u/58138185?v=4?s=75" width="75px;" alt="flin7"/><br /><sub><b>flin7</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=flin7" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fred21O4"><img src="https://avatars.githubusercontent.com/u/67189813?v=4?s=75" width="75px;" alt="fred21O4"/><br /><sub><b>fred21O4</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=fred21O4" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/gardc"><img src="https://avatars.githubusercontent.com/u/41453409?v=4?s=75" width="75px;" alt="gardc"/><br /><sub><b>gardc</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=gardc" title="Documentation">📖</a> <a href="#tutorial-gardc" title="Tutorials"></a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/rayshoo"><img src="https://avatars.githubusercontent.com/u/52561899?v=4?s=75" width="75px;" alt="rayshoo"/><br /><sub><b>rayshoo</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=rayshoo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Yz4230"><img src="https://avatars.githubusercontent.com/u/38999742?v=4?s=75" width="75px;" alt="Ishiyama Yuzuki"/><br /><sub><b>Ishiyama Yuzuki</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Yz4230" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AYz4230" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://baiyue.one/"><img src="https://avatars.githubusercontent.com/u/43716063?v=4?s=75" width="75px;" alt="佰阅"/><br /><sub><b>佰阅</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Baiyuetribe" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/daodao97"><img src="https://avatars.githubusercontent.com/u/15009280?v=4?s=75" width="75px;" alt="刀刀"/><br /><sub><b>刀刀</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=daodao97" title="Documentation">📖</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Adaodao97" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/jicg"><img src="https://avatars.githubusercontent.com/u/6479672?v=4?s=75" width="75px;" alt="归位"/><br /><sub><b>归位</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=jicg" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Ajicg" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/skamensky"><img src="https://avatars.githubusercontent.com/u/19151369?v=4?s=75" width="75px;" alt="skamensky"/><br /><sub><b>skamensky</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=skamensky" title="Code">💻</a> <a href="#ideas-skamensky" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=skamensky" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/apps/dependabot"><img src="https://avatars.githubusercontent.com/in/29110?v=4?s=75" width="75px;" alt="dependabot[bot]"/><br /><sub><b>dependabot[bot]</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=dependabot[bot]" title="Code">💻</a> <a href="#maintenance-dependabot[bot]" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/dsieradzki/"><img src="https://avatars.githubusercontent.com/u/10297559?v=4?s=75" width="75px;" alt="Damian Sieradzki"/><br /><sub><b>Damian Sieradzki</b></sub></a><br /><a href="#financial-dsieradzki" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/boostchicken"><img src="https://avatars.githubusercontent.com/u/427295?v=4?s=75" width="75px;" alt="John Dorman"/><br /><sub><b>John Dorman</b></sub></a><br /><a href="#financial-boostchicken" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://blog.iansinnott.com/"><img src="https://avatars.githubusercontent.com/u/3154865?v=4?s=75" width="75px;" alt="Ian Sinnott"/><br /><sub><b>Ian Sinnott</b></sub></a><br /><a href="#financial-iansinnott" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Shackelford-Arden"><img src="https://avatars.githubusercontent.com/u/7362263?v=4?s=75" width="75px;" alt="Arden Shackelford"/><br /><sub><b>Arden Shackelford</b></sub></a><br /><a href="#financial-Shackelford-Arden" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Bironou"><img src="https://avatars.githubusercontent.com/u/107761511?v=4?s=75" width="75px;" alt="Bironou"/><br /><sub><b>Bironou</b></sub></a><br /><a href="#financial-Bironou" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/CharlieGo19"><img src="https://avatars.githubusercontent.com/u/62405980?v=4?s=75" width="75px;" alt="CharlieGo_"/><br /><sub><b>CharlieGo_</b></sub></a><br /><a href="#financial-CharlieGo19" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/overnet"><img src="https://avatars.githubusercontent.com/u/6376126?v=4?s=75" width="75px;" alt="overnet"/><br /><sub><b>overnet</b></sub></a><br /><a href="#financial-overnet" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://jugglingjsons.dev/"><img src="https://avatars.githubusercontent.com/u/20739064?v=4?s=75" width="75px;" alt="jugglingjsons"/><br /><sub><b>jugglingjsons</b></sub></a><br /><a href="#financial-jugglingjsons" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://selvin.dev/"><img src="https://avatars.githubusercontent.com/u/1922523?v=4?s=75" width="75px;" alt="Selvin Ortiz"/><br /><sub><b>Selvin Ortiz</b></sub></a><br /><a href="#financial-selvindev" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/zandercodes"><img src="https://avatars.githubusercontent.com/u/46308805?v=4?s=75" width="75px;" alt="ZanderCodes"/><br /><sub><b>ZanderCodes</b></sub></a><br /><a href="#financial-zandercodes" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/DonTomato"><img src="https://avatars.githubusercontent.com/u/1098084?v=4?s=75" width="75px;" alt="Michael Voronov"/><br /><sub><b>Michael Voronov</b></sub></a><br /><a href="#financial-DonTomato" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://lt.hn/"><img src="https://avatars.githubusercontent.com/u/83868036?v=4?s=75" width="75px;" alt="letheanVPN"/><br /><sub><b>letheanVPN</b></sub></a><br /><a href="#financial-letheanVPN" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://taigrr.com/"><img src="https://avatars.githubusercontent.com/u/8261498?v=4?s=75" width="75px;" alt="Tai Groot"/><br /><sub><b>Tai Groot</b></sub></a><br /><a href="#financial-taigrr" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/easy-web-it"><img src="https://avatars.githubusercontent.com/u/95484991?v=4?s=75" width="75px;" alt="easy-web-it"/><br /><sub><b>easy-web-it</b></sub></a><br /><a href="#financial-easy-web-it" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://michaelolson1996.github.io/portfolio"><img src="https://avatars.githubusercontent.com/u/45323107?v=4?s=75" width="75px;" alt="Michael Olson"/><br /><sub><b>Michael Olson</b></sub></a><br /><a href="#financial-michaelolson1996" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://eden.network/"><img src="https://avatars.githubusercontent.com/u/4912777?v=4?s=75" width="75px;" alt="EdenNetwork Italia"/><br /><sub><b>EdenNetwork Italia</b></sub></a><br /><a href="#financial-EdenNetworkItalia" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/ondoki"><img src="https://avatars.githubusercontent.com/u/88536792?v=4?s=75" width="75px;" alt="ondoki"/><br /><sub><b>ondoki</b></sub></a><br /><a href="#financial-ondoki" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/questrail"><img src="https://avatars.githubusercontent.com/u/3536569?v=4?s=75" width="75px;" alt="QuEST Rail LLC"/><br /><sub><b>QuEST Rail LLC</b></sub></a><br /><a href="#financial-questrail" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Gilgames000"><img src="https://avatars.githubusercontent.com/u/22778436?v=4?s=75" width="75px;" alt="Gilgameš"/><br /><sub><b>Gilgameš</b></sub></a><br /><a href="#financial-Gilgames000" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/bbergshaven"><img src="https://avatars.githubusercontent.com/u/4091634?v=4?s=75" width="75px;" alt="Bernt-Johan Bergshaven"/><br /><sub><b>Bernt-Johan Bergshaven</b></sub></a><br /><a href="#financial-bbergshaven" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/bglw"><img src="https://avatars.githubusercontent.com/u/40188355?v=4?s=75" width="75px;" alt="Liam Bigelow"/><br /><sub><b>Liam Bigelow</b></sub></a><br /><a href="#financial-bglw" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/nickarellano"><img src="https://avatars.githubusercontent.com/u/13930605?v=4?s=75" width="75px;" alt="Nick Arellano"/><br /><sub><b>Nick Arellano</b></sub></a><br /><a href="#financial-nickarellano" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fcjr"><img src="https://avatars.githubusercontent.com/u/2053002?v=4?s=75" width="75px;" alt="Frank Chiarulli Jr."/><br /><sub><b>Frank Chiarulli Jr.</b></sub></a><br /><a href="#financial-fcjr" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tylertravisty"><img src="https://avatars.githubusercontent.com/u/8620352?v=4?s=75" width="75px;" alt="Tyler"/><br /><sub><b>Tyler</b></sub></a><br /><a href="#financial-tylertravisty" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/trea"><img src="https://avatars.githubusercontent.com/u/1181448?v=4?s=75" width="75px;" alt="Trea Hauet"/><br /><sub><b>Trea Hauet</b></sub></a><br /><a href="#financial-trea" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://picatz.github.io/"><img src="https://avatars.githubusercontent.com/u/14850816?v=4?s=75" width="75px;" alt="Kent 'picat' Gruber"/><br /><sub><b>Kent 'picat' Gruber</b></sub></a><br /><a href="#financial-picatz" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tc-hib"><img src="https://avatars.githubusercontent.com/u/55949036?v=4?s=75" width="75px;" alt="tc-hib"/><br /><sub><b>tc-hib</b></sub></a><br /><a href="#financial-tc-hib" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/acheong08"><img src="https://avatars.githubusercontent.com/u/36258159?v=4?s=75" width="75px;" alt="Antonio"/><br /><sub><b>Antonio</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=acheong08" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/MyNameIsAres"><img src="https://avatars.githubusercontent.com/u/32432637?v=4?s=75" width="75px;" alt="MyNameIsAres"/><br /><sub><b>MyNameIsAres</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=MyNameIsAres" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="http://mai.car.ons"><img src="https://avatars.githubusercontent.com/u/101958587?v=4?s=75" width="75px;" alt="Maicarons J"/><br /><sub><b>Maicarons J</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Maicarons2022" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/KiddoV"><img src="https://avatars.githubusercontent.com/u/28552977?v=4?s=75" width="75px;" alt="kiddov"/><br /><sub><b>kiddov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=KiddoV" title="Documentation">📖</a> <a href="#financial-KiddoV" title="Financial">💵</a> <a href="https://github.com/wailsapp/wails/commits?author=KiddoV" title="Tests">⚠️</a> <a href="#ideas-KiddoV" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://nicolas-coutin.com/"><img src="https://avatars.githubusercontent.com/u/6564012?v=4?s=75" width="75px;" alt="Nicolas Coutin"/><br /><sub><b>Nicolas Coutin</b></sub></a><br /><a href="#financial-Ilshidur" title="Financial">💵</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/ParvinEyvazov"><img src="https://avatars.githubusercontent.com/u/32189770?v=4?s=75" width="75px;" alt="Parvin Eyvazov"/><br /><sub><b>Parvin Eyvazov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ParvinEyvazov" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/apps/github-actions"><img src="https://avatars.githubusercontent.com/in/15368?v=4?s=75" width="75px;" alt="github-actions[bot]"/><br /><sub><b>github-actions[bot]</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=github-actions[bot]" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/OlegGulevskyy"><img src="https://avatars.githubusercontent.com/u/43781031?v=4?s=75" width="75px;" alt="Oleg Gulevskyy"/><br /><sub><b>Oleg Gulevskyy</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=OlegGulevskyy" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/commits?author=OlegGulevskyy" title="Documentation">📖</a> <a href="#maintenance-OlegGulevskyy" title="Maintenance">🚧</a> <a href="#platform-OlegGulevskyy" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="12.5%"><a href="http://www.customct.com/"><img src="https://avatars.githubusercontent.com/u/2487495?v=4?s=75" width="75px;" alt="Richard Guay"/><br /><sub><b>Richard Guay</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=raguay" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/ATenderholt"><img src="https://avatars.githubusercontent.com/u/740623?v=4?s=75" width="75px;" alt="Adam Tenderholt"/><br /><sub><b>Adam Tenderholt</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ATenderholt" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/JulioDRF"><img src="https://avatars.githubusercontent.com/u/15677708?v=4?s=75" width="75px;" alt="JulioDRF"/><br /><sub><b>JulioDRF</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=JulioDRF" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="http://scottopell.com/"><img src="https://avatars.githubusercontent.com/u/996472?v=4?s=75" width="75px;" alt="Scott Opell"/><br /><sub><b>Scott Opell</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=scottopell" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://aven.dev/"><img src="https://avatars.githubusercontent.com/u/2055581?v=4?s=75" width="75px;" alt="Vadim Shchepotev"/><br /><sub><b>Vadim Shchepotev</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=avengerweb" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://willdot.net/"><img src="https://avatars.githubusercontent.com/u/4906530?v=4?s=75" width="75px;" alt="Will Andrews"/><br /><sub><b>Will Andrews</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=willdot" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/gwynforthewyn"><img src="https://avatars.githubusercontent.com/u/434656?v=4?s=75" width="75px;" alt="Gwyn"/><br /><sub><b>Gwyn</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=gwynforthewyn" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Agwynforthewyn" title="Reviewed Pull Requests">👀</a> <a href="#question-gwynforthewyn" title="Answering Questions">💬</a> <a href="#research-gwynforthewyn" title="Research">🔬</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/xijaja"><img src="https://avatars.githubusercontent.com/u/47017666?v=4?s=75" width="75px;" alt="希嘉嘉"/><br /><sub><b>希嘉嘉</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=xijaja" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://www.almas.cc/"><img src="https://avatars.githubusercontent.com/u/9382335?v=4?s=75" width="75px;" alt="ALMAS"/><br /><sub><b>ALMAS</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=almas1992" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://stdout.com.cn/"><img src="https://avatars.githubusercontent.com/u/20666153?v=4?s=75" width="75px;" alt="Alex"/><br /><sub><b>Alex</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=o8x" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/arifali123"><img src="https://avatars.githubusercontent.com/u/51419655?v=4?s=75" width="75px;" alt="Arif Ali"/><br /><sub><b>Arif Ali</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=arifali123" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/hotafrika"><img src="https://avatars.githubusercontent.com/u/18332839?v=4?s=75" width="75px;" alt="Artur Siarohau"/><br /><sub><b>Artur Siarohau</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=hotafrika" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://binyam.in/"><img src="https://avatars.githubusercontent.com/u/39805353?v=4?s=75" width="75px;" alt="Binyamin Aron Green"/><br /><sub><b>Binyamin Aron Green</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=binyamin" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="http://bdwyertech.net/"><img src="https://avatars.githubusercontent.com/u/2973273?v=4?s=75" width="75px;" alt="Brian Dwyer"/><br /><sub><b>Brian Dwyer</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=bdwyertech" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="http://www.cilb.de/"><img src="https://avatars.githubusercontent.com/u/7283097?v=4?s=75" width="75px;" alt="Christian Kilb"/><br /><sub><b>Christian Kilb</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ckilb" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/edwargix"><img src="https://avatars.githubusercontent.com/u/22877007?v=4?s=75" width="75px;" alt="David Florness"/><br /><sub><b>David Florness</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=edwargix" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/BuckeyeCoder"><img src="https://avatars.githubusercontent.com/u/95933880?v=4?s=75" width="75px;" alt="David Walton"/><br /><sub><b>David Walton</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=BuckeyeCoder" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Debdut"><img src="https://avatars.githubusercontent.com/u/7561070?v=4?s=75" width="75px;" alt="Debdut Karmakar"/><br /><sub><b>Debdut Karmakar</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Debdut" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/gotid"><img src="https://avatars.githubusercontent.com/u/4010854?v=4?s=75" width="75px;" alt="Dieter Zhu"/><br /><sub><b>Dieter Zhu</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=gotid" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://fredrikholmqvist.com/"><img src="https://avatars.githubusercontent.com/u/22743750?v=4?s=75" width="75px;" alt="Fredrik Holmqvist"/><br /><sub><b>Fredrik Holmqvist</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Holmqvist1990" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/giopalma"><img src="https://avatars.githubusercontent.com/u/33783684?v=4?s=75" width="75px;" alt="Giovanni Palma"/><br /><sub><b>Giovanni Palma</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=giopalma" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Nexus26404"><img src="https://avatars.githubusercontent.com/u/83110373?v=4?s=75" width="75px;" alt="Hao"/><br /><sub><b>Hao</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Nexus26404" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/i7tsov"><img src="https://avatars.githubusercontent.com/u/44977153?v=4?s=75" width="75px;" alt="Igor Sementsov"/><br /><sub><b>Igor Sementsov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=i7tsov" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/derhasi"><img src="https://avatars.githubusercontent.com/u/118502?v=4?s=75" width="75px;" alt="Johannes Haseitl"/><br /><sub><b>Johannes Haseitl</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=derhasi" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/joshbuddy"><img src="https://avatars.githubusercontent.com/u/8898?v=4?s=75" width="75px;" alt="Joshua Hull"/><br /><sub><b>Joshua Hull</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=joshbuddy" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/joshm998"><img src="https://avatars.githubusercontent.com/u/1779737?v=4?s=75" width="75px;" alt="Joshua Mangiola"/><br /><sub><b>Joshua Mangiola</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=joshm998" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/prurigro"><img src="https://avatars.githubusercontent.com/u/1149238?v=4?s=75" width="75px;" alt="Kevin MacMartin"/><br /><sub><b>Kevin MacMartin</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=prurigro" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/liang-li-dev"><img src="https://avatars.githubusercontent.com/u/112530363?v=4?s=75" width="75px;" alt="Liang Li"/><br /><sub><b>Liang Li</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=liang-li-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://appslab.co.ke/"><img src="https://avatars.githubusercontent.com/u/7722584?v=4?s=75" width="75px;" alt="Marvin Collins Hosea"/><br /><sub><b>Marvin Collins Hosea</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=marvinhosea" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://matt.life/"><img src="https://avatars.githubusercontent.com/u/1128849?v=4?s=75" width="75px;" alt="Matt Holt"/><br /><sub><b>Matt Holt</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=mholt" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Gurkengewuerz"><img src="https://avatars.githubusercontent.com/u/10966337?v=4?s=75" width="75px;" alt="Niklas"/><br /><sub><b>Niklas</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Gurkengewuerz" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Xhofe"><img src="https://avatars.githubusercontent.com/u/36558727?v=4?s=75" width="75px;" alt="Andy Hsu"/><br /><sub><b>Andy Hsu</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Xhofe" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/NullCode1337"><img src="https://avatars.githubusercontent.com/u/70959549?v=4?s=75" width="75px;" alt="NullCode"/><br /><sub><b>NullCode</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=NullCode1337" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/oSethoum"><img src="https://avatars.githubusercontent.com/u/88779394?v=4?s=75" width="75px;" alt="Oussama Sethoum"/><br /><sub><b>Oussama Sethoum</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=oSethoum" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/ParkourLiu"><img src="https://avatars.githubusercontent.com/u/33681340?v=4?s=75" width="75px;" alt="ParkourLiu"/><br /><sub><b>ParkourLiu</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ParkourLiu" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/zllovesuki"><img src="https://avatars.githubusercontent.com/u/298453?v=4?s=75" width="75px;" alt="Rachel Chen"/><br /><sub><b>Rachel Chen</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=zllovesuki" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/rnice01"><img src="https://avatars.githubusercontent.com/u/11394384?v=4?s=75" width="75px;" alt="Rob Nice"/><br /><sub><b>Rob Nice</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=rnice01" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/RyoTagami"><img src="https://avatars.githubusercontent.com/u/9672589?v=4?s=75" width="75px;" alt="Ryo TAGAMI"/><br /><sub><b>Ryo TAGAMI</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=RyoTagami" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/SamHennessy"><img src="https://avatars.githubusercontent.com/u/119867?v=4?s=75" width="75px;" alt="Sam Hennessy"/><br /><sub><b>Sam Hennessy</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=SamHennessy" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://albinodrought.com/"><img src="https://avatars.githubusercontent.com/u/852873?v=4?s=75" width="75px;" alt="Sean"/><br /><sub><b>Sean</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=AlbinoDrought" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/sgosiaco"><img src="https://avatars.githubusercontent.com/u/212341?v=4?s=75" width="75px;" alt="Sean Gosiaco"/><br /><sub><b>Sean Gosiaco</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=sgosiaco" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://sheetjs.com/"><img src="https://avatars.githubusercontent.com/u/6070939?v=4?s=75" width="75px;" alt="Eric P Sheets"/><br /><sub><b>Eric P Sheets</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=SheetJSDev" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="https://www.octopy.dev/"><img src="https://avatars.githubusercontent.com/u/37969970?v=4?s=75" width="75px;" alt="Supian M"/><br /><sub><b>Supian M</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=SupianIDz" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Watson-Sei"><img src="https://avatars.githubusercontent.com/u/55475145?v=4?s=75" width="75px;" alt="Watson-Sei"/><br /><sub><b>Watson-Sei</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Watson-Sei" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/commits?author=Watson-Sei" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://shinshin86.com/"><img src="https://avatars.githubusercontent.com/u/8216064?v=4?s=75" width="75px;" alt="Yuki Shindo"/><br /><sub><b>Yuki Shindo</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=shinshin86" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/cuigege"><img src="https://avatars.githubusercontent.com/u/26080122?v=4?s=75" width="75px;" alt="cuigege"/><br /><sub><b>cuigege</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=cuigege" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://cybertramp.net/"><img src="https://avatars.githubusercontent.com/u/30935096?v=4?s=75" width="75px;" alt="cybertramp"/><br /><sub><b>cybertramp</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=cybertramp" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/h8gi"><img src="https://avatars.githubusercontent.com/u/10811057?v=4?s=75" width="75px;" alt="hiroki yagi"/><br /><sub><b>hiroki yagi</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=h8gi" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/apps/imgbot"><img src="https://avatars.githubusercontent.com/in/4706?v=4?s=75" width="75px;" alt="imgbot[bot]"/><br /><sub><b>imgbot[bot]</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=imgbot[bot]" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tong3jie"><img src="https://avatars.githubusercontent.com/u/14191774?v=4?s=75" width="75px;" alt="juju"/><br /><sub><b>juju</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=tong3jie" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="12.5%"><a href="http://meatherly.github.io/"><img src="https://avatars.githubusercontent.com/u/1327960?v=4?s=75" width="75px;" alt="Michael Eatherly"/><br /><sub><b>Michael Eatherly</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=meatherly" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tk103331"><img src="https://avatars.githubusercontent.com/u/4404609?v=4?s=75" width="75px;" alt="tk"/><br /><sub><b>tk</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=tk103331" title="Code">💻</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://github.com/apps/allcontributors"><img src="https://avatars.githubusercontent.com/in/23186?v=4?s=75" width="75px;" alt="allcontributors[bot]"/><br /><sub><b>allcontributors[bot]</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=allcontributors[bot]" title="Documentation">📖</a></td>
<td align="center" valign="top" width="12.5%"><a href="https://www.ffactory.org/"><img src="https://avatars.githubusercontent.com/u/77320953?v=4?s=75" width="75px;" alt="wander"/><br /><sub><b>wander</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=wandercn" title="Documentation">📖</a></td>
</tr>
</tbody>
</table>
<!--GAMFC_DELIMITER-END-->
</div>

Some files were not shown because too many files have changed in this diff Show more