Commit graph

5,234 commits

Author SHA1 Message Date
Lea Anthony
47ebe47090
docs: audit and fix hallucinated v3 documentation (#4975)
* 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>

* 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>

* 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>

* 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>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:48:08 +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] v3.0.0-alpha.31 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] v3.0.0-alpha.30 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] v3.0.0-alpha.29 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) v3.0.0-alpha.28
* 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) v3.0.0-alpha.27
* 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) v3.0.0-alpha.26
* 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) v3.0.0-alpha.25
* 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) v3.0.0-alpha.24
* Sanitise the browser urls!
2025-08-12 21:20:36 +10:00