From 6e317930314a531e26d55bd8128801402ae5d61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enzo=20Guti=C3=A9rrez=20Pereira?= Date: Sat, 11 Jul 2026 17:33:49 -0300 Subject: [PATCH 1/7] wails init for tray --- .gitignore | 3 +- go.mod | 41 ++- go.sum | 81 +++++ internal/gui/.gitignore | 3 + internal/gui/README.md | 19 + internal/gui/app.go | 27 ++ internal/gui/frontend/bun.lock | 254 ++++++++++++++ internal/gui/frontend/index.html | 13 + internal/gui/frontend/package.json | 21 ++ internal/gui/frontend/package.json.md5 | 1 + internal/gui/frontend/src/App.css | 59 ++++ internal/gui/frontend/src/App.jsx | 28 ++ .../gui/frontend/src/assets/fonts/OFL.txt | 93 +++++ .../fonts/nunito-v16-latin-regular.woff2 | Bin 0 -> 18972 bytes .../src/assets/images/logo-universal.png | Bin 0 -> 139695 bytes internal/gui/frontend/src/main.jsx | 14 + internal/gui/frontend/src/style.css | 26 ++ internal/gui/frontend/vite.config.js | 7 + .../gui/frontend/wailsjs/go/main/App.d.ts | 4 + internal/gui/frontend/wailsjs/go/main/App.js | 7 + .../gui/frontend/wailsjs/runtime/package.json | 24 ++ .../gui/frontend/wailsjs/runtime/runtime.d.ts | 330 ++++++++++++++++++ .../gui/frontend/wailsjs/runtime/runtime.js | 298 ++++++++++++++++ internal/gui/main.go | 36 ++ internal/platform/console_other.go | 6 + internal/platform/console_windows.go | 36 ++ main.go | 27 +- wails.json | 10 + 28 files changed, 1460 insertions(+), 8 deletions(-) create mode 100644 internal/gui/.gitignore create mode 100644 internal/gui/README.md create mode 100644 internal/gui/app.go create mode 100644 internal/gui/frontend/bun.lock create mode 100644 internal/gui/frontend/index.html create mode 100644 internal/gui/frontend/package.json create mode 100644 internal/gui/frontend/package.json.md5 create mode 100644 internal/gui/frontend/src/App.css create mode 100644 internal/gui/frontend/src/App.jsx create mode 100644 internal/gui/frontend/src/assets/fonts/OFL.txt create mode 100644 internal/gui/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 create mode 100644 internal/gui/frontend/src/assets/images/logo-universal.png create mode 100644 internal/gui/frontend/src/main.jsx create mode 100644 internal/gui/frontend/src/style.css create mode 100644 internal/gui/frontend/vite.config.js create mode 100644 internal/gui/frontend/wailsjs/go/main/App.d.ts create mode 100644 internal/gui/frontend/wailsjs/go/main/App.js create mode 100644 internal/gui/frontend/wailsjs/runtime/package.json create mode 100644 internal/gui/frontend/wailsjs/runtime/runtime.d.ts create mode 100644 internal/gui/frontend/wailsjs/runtime/runtime.js create mode 100644 internal/gui/main.go create mode 100644 internal/platform/console_other.go create mode 100644 internal/platform/console_windows.go create mode 100644 wails.json diff --git a/.gitignore b/.gitignore index 7d7c7e3..7d679de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ dist *.exe -wintun.dll \ No newline at end of file +wintun.dll +build \ No newline at end of file diff --git a/go.mod b/go.mod index 1461de7..c297e1e 100644 --- a/go.mod +++ b/go.mod @@ -3,17 +3,46 @@ module github.com/neozmmv/blindspot go 1.25.6 require ( - github.com/flynn/noise v1.1.0 // indirect + github.com/flynn/noise v1.1.0 + github.com/pion/stun v0.6.1 + github.com/spf13/cobra v1.10.2 + github.com/wailsapp/wails/v2 v2.13.0 + golang.org/x/crypto v0.52.0 + golang.org/x/sys v0.45.0 + golang.zx2c4.com/wireguard v0.0.0-20260522210424-ecfc5a8d5446 +) + +require ( + git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3 // indirect + github.com/bep/debounce v1.2.1 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/websocket v1.5.3 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect + github.com/labstack/echo/v4 v4.13.3 // indirect + github.com/labstack/gommon v0.4.2 // indirect + github.com/leaanthony/go-ansi-parser v1.6.1 // indirect + github.com/leaanthony/gosod v1.0.4 // indirect + github.com/leaanthony/slicer v1.6.0 // indirect + github.com/leaanthony/u v1.1.1 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/pion/dtls/v2 v2.2.7 // indirect github.com/pion/logging v0.2.2 // indirect - github.com/pion/stun v0.6.1 // indirect github.com/pion/transport/v2 v2.2.1 // indirect - github.com/spf13/cobra v1.10.2 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/samber/lo v1.49.1 // indirect github.com/spf13/pflag v1.0.9 // indirect - golang.org/x/crypto v0.52.0 // indirect + github.com/tkrajina/go-reflector v0.5.8 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasttemplate v1.2.2 // indirect + github.com/wailsapp/go-webview2 v1.0.22 // indirect + github.com/wailsapp/mimetype v1.4.1 // indirect golang.org/x/net v0.54.0 // indirect - golang.org/x/sys v0.45.0 // indirect + golang.org/x/text v0.37.0 // indirect golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect - golang.zx2c4.com/wireguard v0.0.0-20260522210424-ecfc5a8d5446 // indirect ) diff --git a/go.sum b/go.sum index 13cd4f8..28a9344 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,55 @@ +git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3 h1:N3IGoHHp9pb6mj1cbXbuaSXV/UMKwmbKLf53nQmtqMA= +git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3/go.mod h1:QtOLZGz8olr4qH2vWK0QH0w0O4T9fEIjMuWpKUsH7nc= +github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY= +github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg= github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck= +github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY= +github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= +github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= +github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= +github.com/leaanthony/debme v1.2.1 h1:9Tgwf+kjcrbMQ4WnPcEIUcQuIZYqdWftzZkBr+i/oOc= +github.com/leaanthony/debme v1.2.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA= +github.com/leaanthony/go-ansi-parser v1.6.1 h1:xd8bzARK3dErqkPFtoF9F3/HgN8UQk0ed1YDKpEz01A= +github.com/leaanthony/go-ansi-parser v1.6.1/go.mod h1:+vva/2y4alzVmmIEpk9QDhA7vLC5zKDTRwfZGOp3IWU= +github.com/leaanthony/gosod v1.0.4 h1:YLAbVyd591MRffDgxUOU1NwLhT9T1/YiwjKZpkNFeaI= +github.com/leaanthony/gosod v1.0.4/go.mod h1:GKuIL0zzPj3O1SdWQOdgURSuhkF+Urizzxh26t9f1cw= +github.com/leaanthony/slicer v1.6.0 h1:1RFP5uiPJvT93TAHi+ipd3NACobkW53yUiBqZheE/Js= +github.com/leaanthony/slicer v1.6.0/go.mod h1:o/Iz29g7LN0GqH3aMjWAe90381nyZlDNquK+mtH2Fj8= +github.com/leaanthony/u v1.1.1 h1:TUFjwDGlNX+WuwVEzDqQwC2lOv0P4uhTQw7CMFdiK7M= +github.com/leaanthony/u v1.1.1/go.mod h1:9+o6hejoRljvZ3BzdYlVL0JYCwtnAsVuN9pVTQcaRfI= +github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= +github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= +github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= @@ -16,8 +58,18 @@ github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c= github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= +github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= @@ -29,6 +81,20 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/tkrajina/go-reflector v0.5.8 h1:yPADHrwmUbMq4RGEyaOUpz2H90sRsETNVpjzo3DLVQQ= +github.com/tkrajina/go-reflector v0.5.8/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/wailsapp/go-webview2 v1.0.22 h1:YT61F5lj+GGaat5OB96Aa3b4QA+mybD0Ggq6NZijQ58= +github.com/wailsapp/go-webview2 v1.0.22/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= +github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= +github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= +github.com/wailsapp/wails/v2 v2.13.0 h1:S7OgXWpj72V91unF8iDWJKbcS9ZpwCT3R0QVru4v2Mg= +github.com/wailsapp/wails/v2 v2.13.0/go.mod h1:nVr/wSIEZ7xxKPkzK65mjpKpaOPQI2k4pvLwGR/i4kc= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -41,6 +107,7 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= @@ -50,11 +117,16 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= @@ -64,9 +136,14 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= @@ -77,6 +154,10 @@ golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod h1:deeaetjYA+D golang.zx2c4.com/wireguard v0.0.0-20260522210424-ecfc5a8d5446 h1:cqHQ3AycTHvM2R7ikgyX57D+XvtcSnGylsLkOVhta/w= golang.zx2c4.com/wireguard v0.0.0-20260522210424-ecfc5a8d5446/go.mod h1:rpwXGsirqLqN2L0JDJQlwOboGHmptD5ZD6T2VmcqhTw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gvisor.dev/gvisor v0.0.0-20250503011706-39ed1f5ac29c h1:m/r7OM+Y2Ty1sgBQ7Qb27VgIMBW8ZZhT4gLnUyDIhzI= +gvisor.dev/gvisor v0.0.0-20250503011706-39ed1f5ac29c/go.mod h1:3r5CMtNQMKIvBlrmM9xWUNamjKBYPOWyXOjmg5Kts3g= diff --git a/internal/gui/.gitignore b/internal/gui/.gitignore new file mode 100644 index 0000000..129d522 --- /dev/null +++ b/internal/gui/.gitignore @@ -0,0 +1,3 @@ +build/bin +node_modules +frontend/dist diff --git a/internal/gui/README.md b/internal/gui/README.md new file mode 100644 index 0000000..4db88f6 --- /dev/null +++ b/internal/gui/README.md @@ -0,0 +1,19 @@ +# README + +## About + +This is the official Wails React template. + +You can configure the project by editing `wails.json`. More information about the project settings can be found +here: https://wails.io/docs/reference/project-config + +## Live Development + +To run in live development mode, run `wails dev` in the project directory. This will run a Vite development +server that will provide very fast hot reload of your frontend changes. If you want to develop in a browser +and have access to your Go methods, there is also a dev server that runs on http://localhost:34115. Connect +to this in your browser, and you can call your Go code from devtools. + +## Building + +To build a redistributable, production mode package, use `wails build`. diff --git a/internal/gui/app.go b/internal/gui/app.go new file mode 100644 index 0000000..e58aeac --- /dev/null +++ b/internal/gui/app.go @@ -0,0 +1,27 @@ +package gui + +import ( + "context" + "fmt" +) + +// App struct +type App struct { + ctx context.Context +} + +// NewApp creates a new App application struct +func NewApp() *App { + return &App{} +} + +// startup is called when the app starts. The context is saved +// so we can call the runtime methods +func (a *App) startup(ctx context.Context) { + a.ctx = ctx +} + +// Greet returns a greeting for the given name +func (a *App) Greet(name string) string { + return fmt.Sprintf("Hello %s, It's show time!", name) +} diff --git a/internal/gui/frontend/bun.lock b/internal/gui/frontend/bun.lock new file mode 100644 index 0000000..44de3dc --- /dev/null +++ b/internal/gui/frontend/bun.lock @@ -0,0 +1,254 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "frontend", + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0", + }, + "devDependencies": { + "@types/react": "^19.1.0", + "@types/react-dom": "^19.1.0", + "@vitejs/plugin-react": "^5.0.0", + "vite": "^7.0.0", + }, + }, + }, + "packages": { + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], + + "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], + + "@babel/core": ["@babel/core@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-module-transforms": "^7.29.7", "@babel/helpers": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA=="], + + "@babel/generator": ["@babel/generator@7.29.7", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.29.7", "", { "dependencies": { "@babel/compat-data": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.29.7", "", {}, "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg=="], + + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.29.7", "", {}, "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.7", "", {}, "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.29.7", "", {}, "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw=="], + + "@babel/helpers": ["@babel/helpers@7.29.7", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg=="], + + "@babel/parser": ["@babel/parser@7.29.7", "", { "dependencies": { "@babel/types": "^7.29.7" }, "bin": "./bin/babel-parser.js" }, "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg=="], + + "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw=="], + + "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q=="], + + "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], + + "@babel/traverse": ["@babel/traverse@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-globals": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.7", "debug": "^4.3.1" } }, "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw=="], + + "@babel/types": ["@babel/types@7.29.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.28.1", "", { "os": "android", "cpu": "arm64" }, "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.28.1", "", { "os": "android", "cpu": "x64" }, "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.28.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.28.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.28.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.28.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.28.1", "", { "os": "linux", "cpu": "arm" }, "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.28.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.28.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.28.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.28.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.28.1", "", { "os": "linux", "cpu": "x64" }, "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.28.1", "", { "os": "none", "cpu": "x64" }, "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.28.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.28.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.28.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.28.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.28.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.28.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.3", "", {}, "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.62.2", "", { "os": "android", "cpu": "arm" }, "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.62.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.62.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.62.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.62.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.62.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.62.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.62.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.62.2", "", { "os": "none", "cpu": "arm64" }, "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.62.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.62.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA=="], + + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + + "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], + + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + + "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], + + "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + + "@vitejs/plugin-react": ["@vitejs/plugin-react@5.2.0", "", { "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-rc.3", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.43", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ=="], + + "browserslist": ["browserslist@4.28.6", "", { "dependencies": { "baseline-browser-mapping": "^2.10.42", "caniuse-lite": "^1.0.30001803", "electron-to-chromium": "^1.5.389", "node-releases": "^2.0.51", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001805", "", {}, "sha512-52noaS3DubycKSXaU30TwPGIp+POyQSUVa5jBEq3vkRkY0kjyb3LQgvhU6WGyCcyXqVLWO0Cw0Q6BSdD0kUfVA=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.389", "", {}, "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg=="], + + "esbuild": ["esbuild@0.28.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", "@esbuild/android-arm64": "0.28.1", "@esbuild/android-x64": "0.28.1", "@esbuild/darwin-arm64": "0.28.1", "@esbuild/darwin-x64": "0.28.1", "@esbuild/freebsd-arm64": "0.28.1", "@esbuild/freebsd-x64": "0.28.1", "@esbuild/linux-arm": "0.28.1", "@esbuild/linux-arm64": "0.28.1", "@esbuild/linux-ia32": "0.28.1", "@esbuild/linux-loong64": "0.28.1", "@esbuild/linux-mips64el": "0.28.1", "@esbuild/linux-ppc64": "0.28.1", "@esbuild/linux-riscv64": "0.28.1", "@esbuild/linux-s390x": "0.28.1", "@esbuild/linux-x64": "0.28.1", "@esbuild/netbsd-arm64": "0.28.1", "@esbuild/netbsd-x64": "0.28.1", "@esbuild/openbsd-arm64": "0.28.1", "@esbuild/openbsd-x64": "0.28.1", "@esbuild/openharmony-arm64": "0.28.1", "@esbuild/sunos-x64": "0.28.1", "@esbuild/win32-arm64": "0.28.1", "@esbuild/win32-ia32": "0.28.1", "@esbuild/win32-x64": "0.28.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.15", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA=="], + + "node-releases": ["node-releases@2.0.51", "", {}, "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="], + + "postcss": ["postcss@8.5.17", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-J7EF+8X+CzRPaJPOv9Ck2wNWJvGnnl3PcNPAdGg6GTLjyVpyQ0yATMSXRFRV01BviT/9Gwuc3rjEyJbDJG9a4w=="], + + "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], + + "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + + "react-refresh": ["react-refresh@0.18.0", "", {}, "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw=="], + + "rollup": ["rollup@4.62.2", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.62.2", "@rollup/rollup-android-arm64": "4.62.2", "@rollup/rollup-darwin-arm64": "4.62.2", "@rollup/rollup-darwin-x64": "4.62.2", "@rollup/rollup-freebsd-arm64": "4.62.2", "@rollup/rollup-freebsd-x64": "4.62.2", "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", "@rollup/rollup-linux-arm-musleabihf": "4.62.2", "@rollup/rollup-linux-arm64-gnu": "4.62.2", "@rollup/rollup-linux-arm64-musl": "4.62.2", "@rollup/rollup-linux-loong64-gnu": "4.62.2", "@rollup/rollup-linux-loong64-musl": "4.62.2", "@rollup/rollup-linux-ppc64-gnu": "4.62.2", "@rollup/rollup-linux-ppc64-musl": "4.62.2", "@rollup/rollup-linux-riscv64-gnu": "4.62.2", "@rollup/rollup-linux-riscv64-musl": "4.62.2", "@rollup/rollup-linux-s390x-gnu": "4.62.2", "@rollup/rollup-linux-x64-gnu": "4.62.2", "@rollup/rollup-linux-x64-musl": "4.62.2", "@rollup/rollup-openbsd-x64": "4.62.2", "@rollup/rollup-openharmony-arm64": "4.62.2", "@rollup/rollup-win32-arm64-msvc": "4.62.2", "@rollup/rollup-win32-ia32-msvc": "4.62.2", "@rollup/rollup-win32-x64-gnu": "4.62.2", "@rollup/rollup-win32-x64-msvc": "4.62.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA=="], + + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "vite": ["vite@7.3.6", "", { "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + } +} diff --git a/internal/gui/frontend/index.html b/internal/gui/frontend/index.html new file mode 100644 index 0000000..5507663 --- /dev/null +++ b/internal/gui/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + blindspot-tray + + +
+ + + + diff --git a/internal/gui/frontend/package.json b/internal/gui/frontend/package.json new file mode 100644 index 0000000..b87f49e --- /dev/null +++ b/internal/gui/frontend/package.json @@ -0,0 +1,21 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@types/react": "^19.1.0", + "@types/react-dom": "^19.1.0", + "@vitejs/plugin-react": "^5.0.0", + "vite": "^7.0.0" + } +} \ No newline at end of file diff --git a/internal/gui/frontend/package.json.md5 b/internal/gui/frontend/package.json.md5 new file mode 100644 index 0000000..555d0b4 --- /dev/null +++ b/internal/gui/frontend/package.json.md5 @@ -0,0 +1 @@ +7744413861883ce8a95940dbc609708d \ No newline at end of file diff --git a/internal/gui/frontend/src/App.css b/internal/gui/frontend/src/App.css new file mode 100644 index 0000000..f949d9c --- /dev/null +++ b/internal/gui/frontend/src/App.css @@ -0,0 +1,59 @@ +#app { + height: 100vh; + text-align: center; +} + +#logo { + display: block; + width: 50%; + height: 50%; + margin: auto; + padding: 10% 0 0; + background-position: center; + background-repeat: no-repeat; + background-size: 100% 100%; + background-origin: content-box; +} + +.result { + height: 20px; + line-height: 20px; + margin: 1.5rem auto; +} + +.input-box .btn { + width: 60px; + height: 30px; + line-height: 30px; + border-radius: 3px; + border: none; + margin: 0 0 0 20px; + padding: 0 8px; + cursor: pointer; +} + +.input-box .btn:hover { + background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%); + color: #333333; +} + +.input-box .input { + border: none; + border-radius: 3px; + outline: none; + height: 30px; + line-height: 30px; + padding: 0 10px; + background-color: rgba(240, 240, 240, 1); + -webkit-font-smoothing: antialiased; +} + +.input-box .input:hover { + border: none; + background-color: rgba(255, 255, 255, 1); +} + +.input-box .input:focus { + border: none; + background-color: rgba(255, 255, 255, 1); +} \ No newline at end of file diff --git a/internal/gui/frontend/src/App.jsx b/internal/gui/frontend/src/App.jsx new file mode 100644 index 0000000..fd76229 --- /dev/null +++ b/internal/gui/frontend/src/App.jsx @@ -0,0 +1,28 @@ +import {useState} from 'react'; +import logo from './assets/images/logo-universal.png'; +import './App.css'; +import {Greet} from "../wailsjs/go/main/App"; + +function App() { + const [resultText, setResultText] = useState("Please enter your name below πŸ‘‡"); + const [name, setName] = useState(''); + const updateName = (e) => setName(e.target.value); + const updateResultText = (result) => setResultText(result); + + function greet() { + Greet(name).then(updateResultText); + } + + return ( +
+ +
{resultText}
+
+ + +
+
+ ) +} + +export default App diff --git a/internal/gui/frontend/src/assets/fonts/OFL.txt b/internal/gui/frontend/src/assets/fonts/OFL.txt new file mode 100644 index 0000000..9cac04c --- /dev/null +++ b/internal/gui/frontend/src/assets/fonts/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2016 The Nunito Project Authors (contact@sansoxygen.com), + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/internal/gui/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 b/internal/gui/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2f9cc5964455b8f5ca989db989250dbebb1a5f66 GIT binary patch literal 18972 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

``Cl35~rb|Fd`a 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�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 P8X6;P7I#y9WO~70V(WKL literal 0 HcmV?d00001 diff --git a/internal/gui/frontend/src/main.jsx b/internal/gui/frontend/src/main.jsx new file mode 100644 index 0000000..e50e105 --- /dev/null +++ b/internal/gui/frontend/src/main.jsx @@ -0,0 +1,14 @@ +import React from 'react' +import {createRoot} from 'react-dom/client' +import './style.css' +import App from './App' + +const container = document.getElementById('root') + +const root = createRoot(container) + +root.render( + + + +) diff --git a/internal/gui/frontend/src/style.css b/internal/gui/frontend/src/style.css new file mode 100644 index 0000000..3940d6c --- /dev/null +++ b/internal/gui/frontend/src/style.css @@ -0,0 +1,26 @@ +html { + background-color: rgba(27, 38, 54, 1); + text-align: center; + color: white; +} + +body { + margin: 0; + color: white; + font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", + "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", + sans-serif; +} + +@font-face { + font-family: "Nunito"; + font-style: normal; + font-weight: 400; + src: local(""), + url("assets/fonts/nunito-v16-latin-regular.woff2") format("woff2"); +} + +#app { + height: 100vh; + text-align: center; +} diff --git a/internal/gui/frontend/vite.config.js b/internal/gui/frontend/vite.config.js new file mode 100644 index 0000000..4955065 --- /dev/null +++ b/internal/gui/frontend/vite.config.js @@ -0,0 +1,7 @@ +import {defineConfig} from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()] +}) diff --git a/internal/gui/frontend/wailsjs/go/main/App.d.ts b/internal/gui/frontend/wailsjs/go/main/App.d.ts new file mode 100644 index 0000000..43173cf --- /dev/null +++ b/internal/gui/frontend/wailsjs/go/main/App.d.ts @@ -0,0 +1,4 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +export function Greet(arg1: string): Promise; diff --git a/internal/gui/frontend/wailsjs/go/main/App.js b/internal/gui/frontend/wailsjs/go/main/App.js new file mode 100644 index 0000000..0ee085c --- /dev/null +++ b/internal/gui/frontend/wailsjs/go/main/App.js @@ -0,0 +1,7 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +export function Greet(arg1) { + return window['go']['main']['App']['Greet'](arg1); +} diff --git a/internal/gui/frontend/wailsjs/runtime/package.json b/internal/gui/frontend/wailsjs/runtime/package.json new file mode 100644 index 0000000..1e7c8a5 --- /dev/null +++ b/internal/gui/frontend/wailsjs/runtime/package.json @@ -0,0 +1,24 @@ +{ + "name": "@wailsapp/runtime", + "version": "2.0.0", + "description": "Wails Javascript runtime library", + "main": "runtime.js", + "types": "runtime.d.ts", + "scripts": { + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wailsapp/wails.git" + }, + "keywords": [ + "Wails", + "Javascript", + "Go" + ], + "author": "Lea Anthony ", + "license": "MIT", + "bugs": { + "url": "https://github.com/wailsapp/wails/issues" + }, + "homepage": "https://github.com/wailsapp/wails#readme" +} diff --git a/internal/gui/frontend/wailsjs/runtime/runtime.d.ts b/internal/gui/frontend/wailsjs/runtime/runtime.d.ts new file mode 100644 index 0000000..3bbea84 --- /dev/null +++ b/internal/gui/frontend/wailsjs/runtime/runtime.d.ts @@ -0,0 +1,330 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ + +export interface Position { + x: number; + y: number; +} + +export interface Size { + w: number; + h: number; +} + +export interface Screen { + isCurrent: boolean; + isPrimary: boolean; + width : number + height : number +} + +// Environment information such as platform, buildtype, ... +export interface EnvironmentInfo { + buildType: string; + platform: string; + arch: string; +} + +// [EventsEmit](https://wails.io/docs/reference/runtime/events#eventsemit) +// emits the given event. Optional data may be passed with the event. +// This will trigger any event listeners. +export function EventsEmit(eventName: string, ...data: any): void; + +// [EventsOn](https://wails.io/docs/reference/runtime/events#eventson) sets up a listener for the given event name. +export function EventsOn(eventName: string, callback: (...data: any) => void): () => void; + +// [EventsOnMultiple](https://wails.io/docs/reference/runtime/events#eventsonmultiple) +// sets up a listener for the given event name, but will only trigger a given number times. +export function EventsOnMultiple(eventName: string, callback: (...data: any) => void, maxCallbacks: number): () => void; + +// [EventsOnce](https://wails.io/docs/reference/runtime/events#eventsonce) +// sets up a listener for the given event name, but will only trigger once. +export function EventsOnce(eventName: string, callback: (...data: any) => void): () => void; + +// [EventsOff](https://wails.io/docs/reference/runtime/events#eventsoff) +// unregisters the listener for the given event name. +export function EventsOff(eventName: string, ...additionalEventNames: string[]): void; + +// [EventsOffAll](https://wails.io/docs/reference/runtime/events#eventsoffall) +// unregisters all listeners. +export function EventsOffAll(): void; + +// [LogPrint](https://wails.io/docs/reference/runtime/log#logprint) +// logs the given message as a raw message +export function LogPrint(message: string): void; + +// [LogTrace](https://wails.io/docs/reference/runtime/log#logtrace) +// logs the given message at the `trace` log level. +export function LogTrace(message: string): void; + +// [LogDebug](https://wails.io/docs/reference/runtime/log#logdebug) +// logs the given message at the `debug` log level. +export function LogDebug(message: string): void; + +// [LogError](https://wails.io/docs/reference/runtime/log#logerror) +// logs the given message at the `error` log level. +export function LogError(message: string): void; + +// [LogFatal](https://wails.io/docs/reference/runtime/log#logfatal) +// logs the given message at the `fatal` log level. +// The application will quit after calling this method. +export function LogFatal(message: string): void; + +// [LogInfo](https://wails.io/docs/reference/runtime/log#loginfo) +// logs the given message at the `info` log level. +export function LogInfo(message: string): void; + +// [LogWarning](https://wails.io/docs/reference/runtime/log#logwarning) +// logs the given message at the `warning` log level. +export function LogWarning(message: string): void; + +// [WindowReload](https://wails.io/docs/reference/runtime/window#windowreload) +// Forces a reload by the main application as well as connected browsers. +export function WindowReload(): void; + +// [WindowReloadApp](https://wails.io/docs/reference/runtime/window#windowreloadapp) +// Reloads the application frontend. +export function WindowReloadApp(): void; + +// [WindowSetAlwaysOnTop](https://wails.io/docs/reference/runtime/window#windowsetalwaysontop) +// Sets the window AlwaysOnTop or not on top. +export function WindowSetAlwaysOnTop(b: boolean): void; + +// [WindowSetSystemDefaultTheme](https://wails.io/docs/next/reference/runtime/window#windowsetsystemdefaulttheme) +// *Windows only* +// Sets window theme to system default (dark/light). +export function WindowSetSystemDefaultTheme(): void; + +// [WindowSetLightTheme](https://wails.io/docs/next/reference/runtime/window#windowsetlighttheme) +// *Windows only* +// Sets window to light theme. +export function WindowSetLightTheme(): void; + +// [WindowSetDarkTheme](https://wails.io/docs/next/reference/runtime/window#windowsetdarktheme) +// *Windows only* +// Sets window to dark theme. +export function WindowSetDarkTheme(): void; + +// [WindowCenter](https://wails.io/docs/reference/runtime/window#windowcenter) +// Centers the window on the monitor the window is currently on. +export function WindowCenter(): void; + +// [WindowSetTitle](https://wails.io/docs/reference/runtime/window#windowsettitle) +// Sets the text in the window title bar. +export function WindowSetTitle(title: string): void; + +// [WindowFullscreen](https://wails.io/docs/reference/runtime/window#windowfullscreen) +// Makes the window full screen. +export function WindowFullscreen(): void; + +// [WindowUnfullscreen](https://wails.io/docs/reference/runtime/window#windowunfullscreen) +// Restores the previous window dimensions and position prior to full screen. +export function WindowUnfullscreen(): void; + +// [WindowIsFullscreen](https://wails.io/docs/reference/runtime/window#windowisfullscreen) +// Returns the state of the window, i.e. whether the window is in full screen mode or not. +export function WindowIsFullscreen(): Promise; + +// [WindowSetSize](https://wails.io/docs/reference/runtime/window#windowsetsize) +// Sets the width and height of the window. +export function WindowSetSize(width: number, height: number): void; + +// [WindowGetSize](https://wails.io/docs/reference/runtime/window#windowgetsize) +// Gets the width and height of the window. +export function WindowGetSize(): Promise; + +// [WindowSetMaxSize](https://wails.io/docs/reference/runtime/window#windowsetmaxsize) +// Sets the maximum window size. Will resize the window if the window is currently larger than the given dimensions. +// Setting a size of 0,0 will disable this constraint. +export function WindowSetMaxSize(width: number, height: number): void; + +// [WindowSetMinSize](https://wails.io/docs/reference/runtime/window#windowsetminsize) +// Sets the minimum window size. Will resize the window if the window is currently smaller than the given dimensions. +// Setting a size of 0,0 will disable this constraint. +export function WindowSetMinSize(width: number, height: number): void; + +// [WindowSetPosition](https://wails.io/docs/reference/runtime/window#windowsetposition) +// Sets the window position relative to the monitor the window is currently on. +export function WindowSetPosition(x: number, y: number): void; + +// [WindowGetPosition](https://wails.io/docs/reference/runtime/window#windowgetposition) +// Gets the window position relative to the monitor the window is currently on. +export function WindowGetPosition(): Promise; + +// [WindowHide](https://wails.io/docs/reference/runtime/window#windowhide) +// Hides the window. +export function WindowHide(): void; + +// [WindowShow](https://wails.io/docs/reference/runtime/window#windowshow) +// Shows the window, if it is currently hidden. +export function WindowShow(): void; + +// [WindowMaximise](https://wails.io/docs/reference/runtime/window#windowmaximise) +// Maximises the window to fill the screen. +export function WindowMaximise(): void; + +// [WindowToggleMaximise](https://wails.io/docs/reference/runtime/window#windowtogglemaximise) +// Toggles between Maximised and UnMaximised. +export function WindowToggleMaximise(): void; + +// [WindowUnmaximise](https://wails.io/docs/reference/runtime/window#windowunmaximise) +// Restores the window to the dimensions and position prior to maximising. +export function WindowUnmaximise(): void; + +// [WindowIsMaximised](https://wails.io/docs/reference/runtime/window#windowismaximised) +// Returns the state of the window, i.e. whether the window is maximised or not. +export function WindowIsMaximised(): Promise; + +// [WindowMinimise](https://wails.io/docs/reference/runtime/window#windowminimise) +// Minimises the window. +export function WindowMinimise(): void; + +// [WindowUnminimise](https://wails.io/docs/reference/runtime/window#windowunminimise) +// Restores the window to the dimensions and position prior to minimising. +export function WindowUnminimise(): void; + +// [WindowIsMinimised](https://wails.io/docs/reference/runtime/window#windowisminimised) +// Returns the state of the window, i.e. whether the window is minimised or not. +export function WindowIsMinimised(): Promise; + +// [WindowIsNormal](https://wails.io/docs/reference/runtime/window#windowisnormal) +// Returns the state of the window, i.e. whether the window is normal or not. +export function WindowIsNormal(): Promise; + +// [WindowSetBackgroundColour](https://wails.io/docs/reference/runtime/window#windowsetbackgroundcolour) +// Sets the background colour of the window to the given RGBA colour definition. This colour will show through for all transparent pixels. +export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void; + +// [ScreenGetAll](https://wails.io/docs/reference/runtime/window#screengetall) +// Gets the all screens. Call this anew each time you want to refresh data from the underlying windowing system. +export function ScreenGetAll(): Promise; + +// [BrowserOpenURL](https://wails.io/docs/reference/runtime/browser#browseropenurl) +// Opens the given URL in the system browser. +export function BrowserOpenURL(url: string): void; + +// [Environment](https://wails.io/docs/reference/runtime/intro#environment) +// Returns information about the environment +export function Environment(): Promise; + +// [Quit](https://wails.io/docs/reference/runtime/intro#quit) +// Quits the application. +export function Quit(): void; + +// [Hide](https://wails.io/docs/reference/runtime/intro#hide) +// Hides the application. +export function Hide(): void; + +// [Show](https://wails.io/docs/reference/runtime/intro#show) +// Shows the application. +export function Show(): void; + +// [ClipboardGetText](https://wails.io/docs/reference/runtime/clipboard#clipboardgettext) +// Returns the current text stored on clipboard +export function ClipboardGetText(): Promise; + +// [ClipboardSetText](https://wails.io/docs/reference/runtime/clipboard#clipboardsettext) +// Sets a text on the clipboard +export function ClipboardSetText(text: string): Promise; + +// [OnFileDrop](https://wails.io/docs/reference/runtime/draganddrop#onfiledrop) +// OnFileDrop listens to drag and drop events and calls the callback with the coordinates of the drop and an array of path strings. +export function OnFileDrop(callback: (x: number, y: number ,paths: string[]) => void, useDropTarget: boolean) :void + +// [OnFileDropOff](https://wails.io/docs/reference/runtime/draganddrop#dragandddropoff) +// OnFileDropOff removes the drag and drop listeners and handlers. +export function OnFileDropOff() :void + +// Check if the file path resolver is available +export function CanResolveFilePaths(): boolean; + +// Resolves file paths for an array of files +export function ResolveFilePaths(files: File[]): void + +// Notification types +export interface NotificationOptions { + id: string; + title: string; + subtitle?: string; // macOS and Linux only + body?: string; + categoryId?: string; + data?: { [key: string]: any }; +} + +export interface NotificationAction { + id?: string; + title?: string; + destructive?: boolean; // macOS-specific +} + +export interface NotificationCategory { + id?: string; + actions?: NotificationAction[]; + hasReplyField?: boolean; + replyPlaceholder?: string; + replyButtonTitle?: string; +} + +// [InitializeNotifications](https://wails.io/docs/reference/runtime/notification#initializenotifications) +// Initializes the notification service for the application. +// This must be called before sending any notifications. +export function InitializeNotifications(): Promise; + +// [CleanupNotifications](https://wails.io/docs/reference/runtime/notification#cleanupnotifications) +// Cleans up notification resources and releases any held connections. +export function CleanupNotifications(): Promise; + +// [IsNotificationAvailable](https://wails.io/docs/reference/runtime/notification#isnotificationavailable) +// Checks if notifications are available on the current platform. +export function IsNotificationAvailable(): Promise; + +// [RequestNotificationAuthorization](https://wails.io/docs/reference/runtime/notification#requestnotificationauthorization) +// Requests notification authorization from the user (macOS only). +export function RequestNotificationAuthorization(): Promise; + +// [CheckNotificationAuthorization](https://wails.io/docs/reference/runtime/notification#checknotificationauthorization) +// Checks the current notification authorization status (macOS only). +export function CheckNotificationAuthorization(): Promise; + +// [SendNotification](https://wails.io/docs/reference/runtime/notification#sendnotification) +// Sends a basic notification with the given options. +export function SendNotification(options: NotificationOptions): Promise; + +// [SendNotificationWithActions](https://wails.io/docs/reference/runtime/notification#sendnotificationwithactions) +// Sends a notification with action buttons. Requires a registered category. +export function SendNotificationWithActions(options: NotificationOptions): Promise; + +// [RegisterNotificationCategory](https://wails.io/docs/reference/runtime/notification#registernotificationcategory) +// Registers a notification category that can be used with SendNotificationWithActions. +export function RegisterNotificationCategory(category: NotificationCategory): Promise; + +// [RemoveNotificationCategory](https://wails.io/docs/reference/runtime/notification#removenotificationcategory) +// Removes a previously registered notification category. +export function RemoveNotificationCategory(categoryId: string): Promise; + +// [RemoveAllPendingNotifications](https://wails.io/docs/reference/runtime/notification#removeallpendingnotifications) +// Removes all pending notifications from the notification center. +export function RemoveAllPendingNotifications(): Promise; + +// [RemovePendingNotification](https://wails.io/docs/reference/runtime/notification#removependingnotification) +// Removes a specific pending notification by its identifier. +export function RemovePendingNotification(identifier: string): Promise; + +// [RemoveAllDeliveredNotifications](https://wails.io/docs/reference/runtime/notification#removealldeliverednotifications) +// Removes all delivered notifications from the notification center. +export function RemoveAllDeliveredNotifications(): Promise; + +// [RemoveDeliveredNotification](https://wails.io/docs/reference/runtime/notification#removedeliverednotification) +// Removes a specific delivered notification by its identifier. +export function RemoveDeliveredNotification(identifier: string): Promise; + +// [RemoveNotification](https://wails.io/docs/reference/runtime/notification#removenotification) +// Removes a notification by its identifier (cross-platform convenience function). +export function RemoveNotification(identifier: string): Promise; \ No newline at end of file diff --git a/internal/gui/frontend/wailsjs/runtime/runtime.js b/internal/gui/frontend/wailsjs/runtime/runtime.js new file mode 100644 index 0000000..556621e --- /dev/null +++ b/internal/gui/frontend/wailsjs/runtime/runtime.js @@ -0,0 +1,298 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ + +export function LogPrint(message) { + window.runtime.LogPrint(message); +} + +export function LogTrace(message) { + window.runtime.LogTrace(message); +} + +export function LogDebug(message) { + window.runtime.LogDebug(message); +} + +export function LogInfo(message) { + window.runtime.LogInfo(message); +} + +export function LogWarning(message) { + window.runtime.LogWarning(message); +} + +export function LogError(message) { + window.runtime.LogError(message); +} + +export function LogFatal(message) { + window.runtime.LogFatal(message); +} + +export function EventsOnMultiple(eventName, callback, maxCallbacks) { + return window.runtime.EventsOnMultiple(eventName, callback, maxCallbacks); +} + +export function EventsOn(eventName, callback) { + return EventsOnMultiple(eventName, callback, -1); +} + +export function EventsOff(eventName, ...additionalEventNames) { + return window.runtime.EventsOff(eventName, ...additionalEventNames); +} + +export function EventsOffAll() { + return window.runtime.EventsOffAll(); +} + +export function EventsOnce(eventName, callback) { + return EventsOnMultiple(eventName, callback, 1); +} + +export function EventsEmit(eventName) { + let args = [eventName].slice.call(arguments); + return window.runtime.EventsEmit.apply(null, args); +} + +export function WindowReload() { + window.runtime.WindowReload(); +} + +export function WindowReloadApp() { + window.runtime.WindowReloadApp(); +} + +export function WindowSetAlwaysOnTop(b) { + window.runtime.WindowSetAlwaysOnTop(b); +} + +export function WindowSetSystemDefaultTheme() { + window.runtime.WindowSetSystemDefaultTheme(); +} + +export function WindowSetLightTheme() { + window.runtime.WindowSetLightTheme(); +} + +export function WindowSetDarkTheme() { + window.runtime.WindowSetDarkTheme(); +} + +export function WindowCenter() { + window.runtime.WindowCenter(); +} + +export function WindowSetTitle(title) { + window.runtime.WindowSetTitle(title); +} + +export function WindowFullscreen() { + window.runtime.WindowFullscreen(); +} + +export function WindowUnfullscreen() { + window.runtime.WindowUnfullscreen(); +} + +export function WindowIsFullscreen() { + return window.runtime.WindowIsFullscreen(); +} + +export function WindowGetSize() { + return window.runtime.WindowGetSize(); +} + +export function WindowSetSize(width, height) { + window.runtime.WindowSetSize(width, height); +} + +export function WindowSetMaxSize(width, height) { + window.runtime.WindowSetMaxSize(width, height); +} + +export function WindowSetMinSize(width, height) { + window.runtime.WindowSetMinSize(width, height); +} + +export function WindowSetPosition(x, y) { + window.runtime.WindowSetPosition(x, y); +} + +export function WindowGetPosition() { + return window.runtime.WindowGetPosition(); +} + +export function WindowHide() { + window.runtime.WindowHide(); +} + +export function WindowShow() { + window.runtime.WindowShow(); +} + +export function WindowMaximise() { + window.runtime.WindowMaximise(); +} + +export function WindowToggleMaximise() { + window.runtime.WindowToggleMaximise(); +} + +export function WindowUnmaximise() { + window.runtime.WindowUnmaximise(); +} + +export function WindowIsMaximised() { + return window.runtime.WindowIsMaximised(); +} + +export function WindowMinimise() { + window.runtime.WindowMinimise(); +} + +export function WindowUnminimise() { + window.runtime.WindowUnminimise(); +} + +export function WindowSetBackgroundColour(R, G, B, A) { + window.runtime.WindowSetBackgroundColour(R, G, B, A); +} + +export function ScreenGetAll() { + return window.runtime.ScreenGetAll(); +} + +export function WindowIsMinimised() { + return window.runtime.WindowIsMinimised(); +} + +export function WindowIsNormal() { + return window.runtime.WindowIsNormal(); +} + +export function BrowserOpenURL(url) { + window.runtime.BrowserOpenURL(url); +} + +export function Environment() { + return window.runtime.Environment(); +} + +export function Quit() { + window.runtime.Quit(); +} + +export function Hide() { + window.runtime.Hide(); +} + +export function Show() { + window.runtime.Show(); +} + +export function ClipboardGetText() { + return window.runtime.ClipboardGetText(); +} + +export function ClipboardSetText(text) { + return window.runtime.ClipboardSetText(text); +} + +/** + * Callback for OnFileDrop returns a slice of file path strings when a drop is finished. + * + * @export + * @callback OnFileDropCallback + * @param {number} x - x coordinate of the drop + * @param {number} y - y coordinate of the drop + * @param {string[]} paths - A list of file paths. + */ + +/** + * OnFileDrop listens to drag and drop events and calls the callback with the coordinates of the drop and an array of path strings. + * + * @export + * @param {OnFileDropCallback} callback - Callback for OnFileDrop returns a slice of file path strings when a drop is finished. + * @param {boolean} [useDropTarget=true] - Only call the callback when the drop finished on an element that has the drop target style. (--wails-drop-target) + */ +export function OnFileDrop(callback, useDropTarget) { + return window.runtime.OnFileDrop(callback, useDropTarget); +} + +/** + * OnFileDropOff removes the drag and drop listeners and handlers. + */ +export function OnFileDropOff() { + return window.runtime.OnFileDropOff(); +} + +export function CanResolveFilePaths() { + return window.runtime.CanResolveFilePaths(); +} + +export function ResolveFilePaths(files) { + return window.runtime.ResolveFilePaths(files); +} + +export function InitializeNotifications() { + return window.runtime.InitializeNotifications(); +} + +export function CleanupNotifications() { + return window.runtime.CleanupNotifications(); +} + +export function IsNotificationAvailable() { + return window.runtime.IsNotificationAvailable(); +} + +export function RequestNotificationAuthorization() { + return window.runtime.RequestNotificationAuthorization(); +} + +export function CheckNotificationAuthorization() { + return window.runtime.CheckNotificationAuthorization(); +} + +export function SendNotification(options) { + return window.runtime.SendNotification(options); +} + +export function SendNotificationWithActions(options) { + return window.runtime.SendNotificationWithActions(options); +} + +export function RegisterNotificationCategory(category) { + return window.runtime.RegisterNotificationCategory(category); +} + +export function RemoveNotificationCategory(categoryId) { + return window.runtime.RemoveNotificationCategory(categoryId); +} + +export function RemoveAllPendingNotifications() { + return window.runtime.RemoveAllPendingNotifications(); +} + +export function RemovePendingNotification(identifier) { + return window.runtime.RemovePendingNotification(identifier); +} + +export function RemoveAllDeliveredNotifications() { + return window.runtime.RemoveAllDeliveredNotifications(); +} + +export function RemoveDeliveredNotification(identifier) { + return window.runtime.RemoveDeliveredNotification(identifier); +} + +export function RemoveNotification(identifier) { + return window.runtime.RemoveNotification(identifier); +} \ No newline at end of file diff --git a/internal/gui/main.go b/internal/gui/main.go new file mode 100644 index 0000000..812b290 --- /dev/null +++ b/internal/gui/main.go @@ -0,0 +1,36 @@ +package gui + +import ( + "embed" + + "github.com/wailsapp/wails/v2" + "github.com/wailsapp/wails/v2/pkg/options" + "github.com/wailsapp/wails/v2/pkg/options/assetserver" +) + +//go:embed all:frontend/dist +var assets embed.FS + +func Run() { + // Create an instance of the app structure + app := NewApp() + + // Create application with options + err := wails.Run(&options.App{ + Title: "blindspot-tray", + Width: 1024, + Height: 768, + AssetServer: &assetserver.Options{ + Assets: assets, + }, + BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1}, + OnStartup: app.startup, + Bind: []interface{}{ + app, + }, + }) + + if err != nil { + println("Error:", err.Error()) + } +} diff --git a/internal/platform/console_other.go b/internal/platform/console_other.go new file mode 100644 index 0000000..13e31bb --- /dev/null +++ b/internal/platform/console_other.go @@ -0,0 +1,6 @@ +//go:build !windows + +package platform + +func WasLaunchedFromTerminal() bool { return false } +func AttachToParentConsole() {} diff --git a/internal/platform/console_windows.go b/internal/platform/console_windows.go new file mode 100644 index 0000000..679321a --- /dev/null +++ b/internal/platform/console_windows.go @@ -0,0 +1,36 @@ +//go:build windows + +package platform + +import ( + "syscall" + "unsafe" +) + +const attachParentProcess = ^uint32(0) + +var ( + kernel32 = syscall.NewLazyDLL("kernel32.dll") + procGetConsoleProcessList = kernel32.NewProc("GetConsoleProcessList") + procAttachConsole = kernel32.NewProc("AttachConsole") +) + +// WasLaunchedFromTerminal detects whether the process was started from an +// existing console (cmd/PowerShell) versus spawned fresh via double-click. +func WasLaunchedFromTerminal() bool { + procAttachConsole.Call(uintptr(attachParentProcess)) + + var pids [2]uint32 + ret, _, _ := procGetConsoleProcessList.Call( + uintptr(unsafe.Pointer(&pids[0])), + uintptr(len(pids)), + ) + + return ret > 1 +} + +// AttachToParentConsole attaches stdout/stderr to the console of the +// process that launched this one (e.g. cmd.exe or PowerShell). +func AttachToParentConsole() { + procAttachConsole.Call(uintptr(attachParentProcess)) +} diff --git a/main.go b/main.go index 4ed9a57..6a1bf77 100644 --- a/main.go +++ b/main.go @@ -1,9 +1,34 @@ package main import ( + "os" + "runtime" + "github.com/neozmmv/blindspot/cmd" + "github.com/neozmmv/blindspot/internal/gui" + "github.com/neozmmv/blindspot/internal/platform" ) func main() { - cmd.Execute() + // Explicit CLI command (e.g. "blindspot connect ...", "blindspot list") + if len(os.Args) > 1 { + if err := cmd.Execute(); err != nil { + os.Exit(1) + } + return + } + + // No arguments passed. On Windows, distinguish between: + // "blindspot" inside an existing terminal -> show help + // double-clicked from Explorer/Start Menu -> launch tray GUI + if runtime.GOOS == "windows" && platform.WasLaunchedFromTerminal() { + platform.AttachToParentConsole() + if err := cmd.Execute(); err != nil { + os.Exit(1) + } + return + } + + // Double-click (Windows) or plain "./blindspot" launched fresh (Linux) -> tray + gui.Run() } diff --git a/wails.json b/wails.json new file mode 100644 index 0000000..6e67552 --- /dev/null +++ b/wails.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://wails.io/schemas/config.v2.json", + "name": "blindspot-tray", + "outputfilename": "blindspot-tray", + "frontend:install": "bun install", + "frontend:build": "bun run build", + "frontend:dev:watcher": "bun run dev", + "frontend:dev:serverUrl": "auto", + "frontend:dir": "internal/gui/frontend" +} From 80c6544167ccbef71eed2bfa8bc35bab84f06b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enzo=20Guti=C3=A9rrez=20Pereira?= Date: Sat, 11 Jul 2026 17:36:10 -0300 Subject: [PATCH 2/7] wails with react-ts --- internal/gui/frontend/bun.lock | 3 ++ internal/gui/frontend/index.html | 4 +-- internal/gui/frontend/package.json | 3 +- internal/gui/frontend/package.json.md5 | 2 +- .../gui/frontend/src/{App.jsx => App.tsx} | 4 +-- .../src/assets/images/logo-universal.png | Bin 139695 -> 139695 bytes .../gui/frontend/src/{main.jsx => main.tsx} | 2 +- internal/gui/frontend/src/vite-env.d.ts | 1 + internal/gui/frontend/tsconfig.json | 31 ++++++++++++++++++ internal/gui/frontend/tsconfig.node.json | 11 +++++++ .../{vite.config.js => vite.config.ts} | 0 11 files changed, 54 insertions(+), 7 deletions(-) rename internal/gui/frontend/src/{App.jsx => App.tsx} (86%) rename internal/gui/frontend/src/{main.jsx => main.tsx} (87%) create mode 100644 internal/gui/frontend/src/vite-env.d.ts create mode 100644 internal/gui/frontend/tsconfig.json create mode 100644 internal/gui/frontend/tsconfig.node.json rename internal/gui/frontend/{vite.config.js => vite.config.ts} (100%) diff --git a/internal/gui/frontend/bun.lock b/internal/gui/frontend/bun.lock index 44de3dc..3de305b 100644 --- a/internal/gui/frontend/bun.lock +++ b/internal/gui/frontend/bun.lock @@ -12,6 +12,7 @@ "@types/react": "^19.1.0", "@types/react-dom": "^19.1.0", "@vitejs/plugin-react": "^5.0.0", + "typescript": "^5.6.3", "vite": "^7.0.0", }, }, @@ -245,6 +246,8 @@ "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], "vite": ["vite@7.3.6", "", { "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg=="], diff --git a/internal/gui/frontend/index.html b/internal/gui/frontend/index.html index 5507663..c5cdb98 100644 --- a/internal/gui/frontend/index.html +++ b/internal/gui/frontend/index.html @@ -3,11 +3,11 @@ - blindspot-tray + temp

- + diff --git a/internal/gui/frontend/package.json b/internal/gui/frontend/package.json index b87f49e..f4ae2b4 100644 --- a/internal/gui/frontend/package.json +++ b/internal/gui/frontend/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite", - "build": "vite build", + "build": "tsc && vite build", "preview": "vite preview" }, "dependencies": { @@ -16,6 +16,7 @@ "@types/react": "^19.1.0", "@types/react-dom": "^19.1.0", "@vitejs/plugin-react": "^5.0.0", + "typescript": "^5.6.3", "vite": "^7.0.0" } } \ No newline at end of file diff --git a/internal/gui/frontend/package.json.md5 b/internal/gui/frontend/package.json.md5 index 555d0b4..56e9e6b 100644 --- a/internal/gui/frontend/package.json.md5 +++ b/internal/gui/frontend/package.json.md5 @@ -1 +1 @@ -7744413861883ce8a95940dbc609708d \ No newline at end of file +ebabc2ea396231dd6d5148053c60fb95 \ No newline at end of file diff --git a/internal/gui/frontend/src/App.jsx b/internal/gui/frontend/src/App.tsx similarity index 86% rename from internal/gui/frontend/src/App.jsx rename to internal/gui/frontend/src/App.tsx index fd76229..a6e56f9 100644 --- a/internal/gui/frontend/src/App.jsx +++ b/internal/gui/frontend/src/App.tsx @@ -6,8 +6,8 @@ import {Greet} from "../wailsjs/go/main/App"; function App() { const [resultText, setResultText] = useState("Please enter your name below πŸ‘‡"); const [name, setName] = useState(''); - const updateName = (e) => setName(e.target.value); - const updateResultText = (result) => setResultText(result); + const updateName = (e: any) => setName(e.target.value); + const updateResultText = (result: string) => setResultText(result); function greet() { Greet(name).then(updateResultText); diff --git a/internal/gui/frontend/src/assets/images/logo-universal.png b/internal/gui/frontend/src/assets/images/logo-universal.png index 5421ad881ef68456f6c92de5c387ba3aef3219e5..99ac71f5a38d0b2350d101f7dea65694c10671a5 100644 GIT binary patch delta 30 mcmZ2~m}C86j)oS-EleDW+-BMa237_Jmbo|6rwc1G%>e+Q#tDu9 delta 30 mcmZ2~m}C86j)oS-EleDW+~(Q_237_J^QA6bo-VA&GzS2rD+&hy diff --git a/internal/gui/frontend/src/main.jsx b/internal/gui/frontend/src/main.tsx similarity index 87% rename from internal/gui/frontend/src/main.jsx rename to internal/gui/frontend/src/main.tsx index e50e105..3626ff3 100644 --- a/internal/gui/frontend/src/main.jsx +++ b/internal/gui/frontend/src/main.tsx @@ -5,7 +5,7 @@ import App from './App' const container = document.getElementById('root') -const root = createRoot(container) +const root = createRoot(container!) root.render( diff --git a/internal/gui/frontend/src/vite-env.d.ts b/internal/gui/frontend/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/internal/gui/frontend/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/internal/gui/frontend/tsconfig.json b/internal/gui/frontend/tsconfig.json new file mode 100644 index 0000000..823e83d --- /dev/null +++ b/internal/gui/frontend/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": [ + "DOM", + "DOM.Iterable", + "ESNext" + ], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": [ + "src" + ], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/internal/gui/frontend/tsconfig.node.json b/internal/gui/frontend/tsconfig.node.json new file mode 100644 index 0000000..b8afcc8 --- /dev/null +++ b/internal/gui/frontend/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": [ + "vite.config.ts" + ] +} diff --git a/internal/gui/frontend/vite.config.js b/internal/gui/frontend/vite.config.ts similarity index 100% rename from internal/gui/frontend/vite.config.js rename to internal/gui/frontend/vite.config.ts From 6626898380eda2ec6dfa72c7355653d1e80155f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enzo=20Guti=C3=A9rrez=20Pereira?= Date: Sat, 11 Jul 2026 18:07:14 -0300 Subject: [PATCH 3/7] migrate to wails3 for system tray --- go.mod | 34 +- go.sum | 77 +--- internal/gui/.gitignore | 12 +- internal/gui/README.md | 64 ++- internal/gui/Taskfile.yml | 65 +++ internal/gui/app.go | 27 -- internal/gui/frontend/.npmrc | 5 + .../fonts/OFL.txt => Inter Font License.txt} | 2 +- .../blindspot/internal/gui/greetservice.ts | 10 + .../neozmmv/blindspot/internal/gui/index.ts} | 5 +- .../wailsapp/wails/v3/internal/eventcreate.ts | 9 + .../wailsapp/wails/v3/internal/eventdata.d.ts | 14 + internal/gui/frontend/bun.lock | 241 +++------- internal/gui/frontend/index.html | 22 +- internal/gui/frontend/package-lock.json | 425 ++++++++++++++++++ internal/gui/frontend/package.json | 22 +- internal/gui/frontend/package.json.md5 | 1 - internal/gui/frontend/public/Inter-Medium.ttf | Bin 0 -> 315132 bytes internal/gui/frontend/public/bg-desktop.jpg | Bin 0 -> 191565 bytes internal/gui/frontend/public/bg-mobile.jpg | Bin 0 -> 182165 bytes internal/gui/frontend/public/react.svg | 1 + internal/gui/frontend/public/style.css | 368 +++++++++++++++ internal/gui/frontend/public/wails.png | Bin 0 -> 9057 bytes internal/gui/frontend/src/App.css | 59 --- internal/gui/frontend/src/App.tsx | 131 +++++- .../fonts/nunito-v16-latin-regular.woff2 | Bin 18972 -> 0 bytes .../src/assets/images/logo-universal.png | Bin 139695 -> 0 bytes internal/gui/frontend/src/main.tsx | 15 +- internal/gui/frontend/src/style.css | 26 -- internal/gui/frontend/tsconfig.json | 38 +- internal/gui/frontend/tsconfig.node.json | 11 - internal/gui/frontend/vite.config.ts | 14 +- internal/gui/frontend/wailsjs/go/main/App.js | 7 - .../gui/frontend/wailsjs/runtime/package.json | 24 - .../gui/frontend/wailsjs/runtime/runtime.d.ts | 330 -------------- .../gui/frontend/wailsjs/runtime/runtime.js | 298 ------------ internal/gui/greetservice.go | 7 + internal/gui/main.go | 106 ++++- 38 files changed, 1312 insertions(+), 1158 deletions(-) create mode 100644 internal/gui/Taskfile.yml delete mode 100644 internal/gui/app.go create mode 100644 internal/gui/frontend/.npmrc rename internal/gui/frontend/{src/assets/fonts/OFL.txt => Inter Font License.txt} (98%) create mode 100644 internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/greetservice.ts rename internal/gui/frontend/{wailsjs/go/main/App.d.ts => bindings/github.com/neozmmv/blindspot/internal/gui/index.ts} (58%) create mode 100644 internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.ts create mode 100644 internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventdata.d.ts create mode 100644 internal/gui/frontend/package-lock.json delete mode 100644 internal/gui/frontend/package.json.md5 create mode 100644 internal/gui/frontend/public/Inter-Medium.ttf create mode 100644 internal/gui/frontend/public/bg-desktop.jpg create mode 100644 internal/gui/frontend/public/bg-mobile.jpg create mode 100644 internal/gui/frontend/public/react.svg create mode 100644 internal/gui/frontend/public/style.css create mode 100644 internal/gui/frontend/public/wails.png delete mode 100644 internal/gui/frontend/src/App.css delete mode 100644 internal/gui/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 delete mode 100644 internal/gui/frontend/src/assets/images/logo-universal.png delete mode 100644 internal/gui/frontend/src/style.css delete mode 100644 internal/gui/frontend/tsconfig.node.json delete mode 100644 internal/gui/frontend/wailsjs/go/main/App.js delete mode 100644 internal/gui/frontend/wailsjs/runtime/package.json delete mode 100644 internal/gui/frontend/wailsjs/runtime/runtime.d.ts delete mode 100644 internal/gui/frontend/wailsjs/runtime/runtime.js create mode 100644 internal/gui/greetservice.go diff --git a/go.mod b/go.mod index c297e1e..800ee13 100644 --- a/go.mod +++ b/go.mod @@ -6,43 +6,27 @@ require ( github.com/flynn/noise v1.1.0 github.com/pion/stun v0.6.1 github.com/spf13/cobra v1.10.2 - github.com/wailsapp/wails/v2 v2.13.0 + github.com/wailsapp/wails/v3 v3.0.0-alpha2.117 golang.org/x/crypto v0.52.0 golang.org/x/sys v0.45.0 golang.zx2c4.com/wireguard v0.0.0-20260522210424-ecfc5a8d5446 ) require ( - git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3 // indirect - github.com/bep/debounce v1.2.1 // indirect + github.com/adrg/xdg v0.5.3 // indirect + github.com/coder/websocket v1.8.14 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/godbus/dbus/v5 v5.1.0 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/gorilla/websocket v1.5.3 // indirect + github.com/godbus/dbus/v5 v5.2.2 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect - github.com/labstack/echo/v4 v4.13.3 // indirect - github.com/labstack/gommon v0.4.2 // indirect - github.com/leaanthony/go-ansi-parser v1.6.1 // indirect - github.com/leaanthony/gosod v1.0.4 // indirect - github.com/leaanthony/slicer v1.6.0 // indirect - github.com/leaanthony/u v1.1.1 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/jchv/go-winloader v0.0.0-20250406163304-c1995be93bd1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/pion/dtls/v2 v2.2.7 // indirect github.com/pion/logging v0.2.2 // indirect github.com/pion/transport/v2 v2.2.1 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/rivo/uniseg v0.4.7 // indirect - github.com/samber/lo v1.49.1 // indirect - github.com/spf13/pflag v1.0.9 // indirect - github.com/tkrajina/go-reflector v0.5.8 // indirect - github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/wailsapp/go-webview2 v1.0.22 // indirect - github.com/wailsapp/mimetype v1.4.1 // indirect + github.com/spf13/pflag v1.0.10 // indirect golang.org/x/net v0.54.0 // indirect - golang.org/x/text v0.37.0 // indirect + golang.org/x/time v0.8.0 // indirect golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect ) diff --git a/go.sum b/go.sum index 28a9344..5511808 100644 --- a/go.sum +++ b/go.sum @@ -1,53 +1,38 @@ -git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3 h1:N3IGoHHp9pb6mj1cbXbuaSXV/UMKwmbKLf53nQmtqMA= -git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3/go.mod h1:QtOLZGz8olr4qH2vWK0QH0w0O4T9fEIjMuWpKUsH7nc= -github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY= -github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= +github.com/adrg/xdg v0.5.3 h1:xRnxJXne7+oWDatRhR1JLnvuccuIeCoBu2rtuLqQB78= +github.com/adrg/xdg v0.5.3/go.mod h1:nlTsY+NNiCBGCK2tpm09vRqfVzrc2fLmXGpBLF0zlTQ= +github.com/coder/websocket v1.8.14 h1:9L0p0iKiNOibykf283eHkKUHHrpG7f65OE3BhhO7v9g= +github.com/coder/websocket v1.8.14/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg= github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= +github.com/go-json-experiment/json v0.0.0-20251027170946-4849db3c2f7e h1:Lf/gRkoycfOBPa42vU2bbgPurFong6zXeFtPoxholzU= +github.com/go-json-experiment/json v0.0.0-20251027170946-4849db3c2f7e/go.mod h1:uNVvRXArCGbZ508SxYYTC5v1JWoz2voff5pm25jU1Ok= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= -github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.2.2 h1:TUR3TgtSVDmjiXOgAAyaZbYmIeP3DPkld3jgKGV8mXQ= +github.com/godbus/dbus/v5 v5.2.2/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= -github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck= -github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= +github.com/jchv/go-winloader v0.0.0-20250406163304-c1995be93bd1 h1:njuLRcjAuMKr7kI3D85AXWkw6/+v9PwtV6M6o11sWHQ= +github.com/jchv/go-winloader v0.0.0-20250406163304-c1995be93bd1/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY= -github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= -github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= -github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= -github.com/leaanthony/debme v1.2.1 h1:9Tgwf+kjcrbMQ4WnPcEIUcQuIZYqdWftzZkBr+i/oOc= -github.com/leaanthony/debme v1.2.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA= -github.com/leaanthony/go-ansi-parser v1.6.1 h1:xd8bzARK3dErqkPFtoF9F3/HgN8UQk0ed1YDKpEz01A= -github.com/leaanthony/go-ansi-parser v1.6.1/go.mod h1:+vva/2y4alzVmmIEpk9QDhA7vLC5zKDTRwfZGOp3IWU= -github.com/leaanthony/gosod v1.0.4 h1:YLAbVyd591MRffDgxUOU1NwLhT9T1/YiwjKZpkNFeaI= -github.com/leaanthony/gosod v1.0.4/go.mod h1:GKuIL0zzPj3O1SdWQOdgURSuhkF+Urizzxh26t9f1cw= -github.com/leaanthony/slicer v1.6.0 h1:1RFP5uiPJvT93TAHi+ipd3NACobkW53yUiBqZheE/Js= -github.com/leaanthony/slicer v1.6.0/go.mod h1:o/Iz29g7LN0GqH3aMjWAe90381nyZlDNquK+mtH2Fj8= -github.com/leaanthony/u v1.1.1 h1:TUFjwDGlNX+WuwVEzDqQwC2lOv0P4uhTQw7CMFdiK7M= -github.com/leaanthony/u v1.1.1/go.mod h1:9+o6hejoRljvZ3BzdYlVL0JYCwtnAsVuN9pVTQcaRfI= -github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= @@ -58,22 +43,14 @@ github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c= github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= -github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= -github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= -github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -83,18 +60,8 @@ github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/tkrajina/go-reflector v0.5.8 h1:yPADHrwmUbMq4RGEyaOUpz2H90sRsETNVpjzo3DLVQQ= -github.com/tkrajina/go-reflector v0.5.8/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= -github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/wailsapp/go-webview2 v1.0.22 h1:YT61F5lj+GGaat5OB96Aa3b4QA+mybD0Ggq6NZijQ58= -github.com/wailsapp/go-webview2 v1.0.22/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= -github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= -github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= -github.com/wailsapp/wails/v2 v2.13.0 h1:S7OgXWpj72V91unF8iDWJKbcS9ZpwCT3R0QVru4v2Mg= -github.com/wailsapp/wails/v2 v2.13.0/go.mod h1:nVr/wSIEZ7xxKPkzK65mjpKpaOPQI2k4pvLwGR/i4kc= +github.com/wailsapp/wails/v3 v3.0.0-alpha2.117 h1:udyjqPG3AIgkod5QDR/WblCkpV8R86BFPSrsWxSyt5Y= +github.com/wailsapp/wails/v3 v3.0.0-alpha2.117/go.mod h1:74WH2FScMsgucZvHHvv7eOefDXCm/CjuIxqhhZgPhKg= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -107,7 +74,6 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= @@ -119,11 +85,9 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -136,12 +100,9 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/internal/gui/.gitignore b/internal/gui/.gitignore index 129d522..5d7826e 100644 --- a/internal/gui/.gitignore +++ b/internal/gui/.gitignore @@ -1,3 +1,11 @@ -build/bin -node_modules +.task +bin frontend/dist +frontend/node_modules +build/linux/appimage/build +build/windows/nsis/MicrosoftEdgeWebview2Setup.exe +# Mobile generated (per-machine; overlays hold absolute paths) +build/ios/xcode/overlay.json +build/ios/xcode/gen/ +build/android/overlay.json +build/android/gen/ \ No newline at end of file diff --git a/internal/gui/README.md b/internal/gui/README.md index 4db88f6..ad12c3f 100644 --- a/internal/gui/README.md +++ b/internal/gui/README.md @@ -1,19 +1,59 @@ -# README +# Welcome to Your New Wails3 Project! -## About +Congratulations on generating your Wails3 application! This README will guide you through the next steps to get your project up and running. -This is the official Wails React template. +## Getting Started -You can configure the project by editing `wails.json`. More information about the project settings can be found -here: https://wails.io/docs/reference/project-config +1. Navigate to your project directory in the terminal. -## Live Development +2. To run your application in development mode, use the following command: -To run in live development mode, run `wails dev` in the project directory. This will run a Vite development -server that will provide very fast hot reload of your frontend changes. If you want to develop in a browser -and have access to your Go methods, there is also a dev server that runs on http://localhost:34115. Connect -to this in your browser, and you can call your Go code from devtools. + ``` + wails3 dev + ``` -## Building + This will start your application and enable hot-reloading for both frontend and backend changes. -To build a redistributable, production mode package, use `wails build`. +3. To build your application for production, use: + + ``` + wails3 build + ``` + + This will create a production-ready executable in the `build` directory. + +## Exploring Wails3 Features + +Now that you have your project set up, it's time to explore the features that Wails3 offers: + +1. **Check out the examples**: The best way to learn is by example. Visit the `examples` directory in the `v3/examples` directory to see various sample applications. + +2. **Run an example**: To run any of the examples, navigate to the example's directory and use: + + ``` + go run . + ``` + + Note: Some examples may be under development during the alpha phase. + +3. **Explore the documentation**: Visit the [Wails3 documentation](https://v3.wails.io/) for in-depth guides and API references. + +4. **Join the community**: Have questions or want to share your progress? Join the [Wails Discord](https://discord.gg/JDdSxwjhGf) or visit the [Wails discussions on GitHub](https://github.com/wailsapp/wails/discussions). + +## Project Structure + +Take a moment to familiarize yourself with your project structure: + +- `frontend/`: Contains your frontend code (HTML, CSS, JavaScript/TypeScript) +- `main.go`: The entry point of your Go backend +- `app.go`: Define your application structure and methods here +- `wails.json`: Configuration file for your Wails project + +## Next Steps + +1. Modify the frontend in the `frontend/` directory to create your desired UI. +2. Add backend functionality in `main.go`. +3. Use `wails3 dev` to see your changes in real-time. +4. When ready, build your application with `wails3 build`. + +Happy coding with Wails3! If you encounter any issues or have questions, don't hesitate to consult the documentation or reach out to the Wails community. diff --git a/internal/gui/Taskfile.yml b/internal/gui/Taskfile.yml new file mode 100644 index 0000000..738d69c --- /dev/null +++ b/internal/gui/Taskfile.yml @@ -0,0 +1,65 @@ +version: '3' + +vars: + APP_NAME: "gui" + BIN_DIR: "bin" + PACKAGE_MANAGER: '{{.PACKAGE_MANAGER | default "npm"}}' + VITE_PORT: '{{.WAILS_VITE_PORT | default 9245}}' + # Target OS for build/package/run. Defaults to the host OS, and is overridden + # by `wails3 build GOOS=...` (or the GOOS env var) for cross-compilation. The + # tasks below dispatch to the matching platform Taskfile via this variable. + GOOS: '{{.GOOS | default OS}}' + +includes: + common: ./build/Taskfile.yml + windows: ./build/windows/Taskfile.yml + darwin: ./build/darwin/Taskfile.yml + linux: ./build/linux/Taskfile.yml + ios: ./build/ios/Taskfile.yml + android: ./build/android/Taskfile.yml + +tasks: + build: + summary: Builds the application + cmds: + - task: "{{.GOOS}}:build" + + package: + summary: Packages a production build of the application + cmds: + - task: "{{.GOOS}}:package" + + run: + summary: Runs the application + cmds: + - task: "{{.GOOS}}:run" + + dev: + summary: Runs the application in development mode + cmds: + - wails3 dev -config ./build/config.yml -port {{.VITE_PORT}} + + setup:docker: + summary: Builds Docker image for cross-compilation (~800MB download) + cmds: + - task: common:setup:docker + + build:server: + summary: Builds the application in server mode (no GUI, HTTP server only) + cmds: + - task: common:build:server + + run:server: + summary: Runs the application in server mode + cmds: + - task: common:run:server + + build:docker: + summary: Builds a Docker image for server mode deployment + cmds: + - task: common:build:docker + + run:docker: + summary: Builds and runs the Docker image + cmds: + - task: common:run:docker diff --git a/internal/gui/app.go b/internal/gui/app.go deleted file mode 100644 index e58aeac..0000000 --- a/internal/gui/app.go +++ /dev/null @@ -1,27 +0,0 @@ -package gui - -import ( - "context" - "fmt" -) - -// App struct -type App struct { - ctx context.Context -} - -// NewApp creates a new App application struct -func NewApp() *App { - return &App{} -} - -// startup is called when the app starts. The context is saved -// so we can call the runtime methods -func (a *App) startup(ctx context.Context) { - a.ctx = ctx -} - -// Greet returns a greeting for the given name -func (a *App) Greet(name string) string { - return fmt.Sprintf("Hello %s, It's show time!", name) -} diff --git a/internal/gui/frontend/.npmrc b/internal/gui/frontend/.npmrc new file mode 100644 index 0000000..5e68cfa --- /dev/null +++ b/internal/gui/frontend/.npmrc @@ -0,0 +1,5 @@ +# Refuse to install package versions published less than 7 days (10080 minutes) +# ago, reducing exposure to freshly compromised or malicious releases. +# Honoured by pnpm and bun; npm currently has no native support and ignores it, +# so this is harmless today and forward-compatible. +minimum-release-age=10080 diff --git a/internal/gui/frontend/src/assets/fonts/OFL.txt b/internal/gui/frontend/Inter Font License.txt similarity index 98% rename from internal/gui/frontend/src/assets/fonts/OFL.txt rename to internal/gui/frontend/Inter Font License.txt index 9cac04c..b525cbf 100644 --- a/internal/gui/frontend/src/assets/fonts/OFL.txt +++ b/internal/gui/frontend/Inter Font License.txt @@ -1,4 +1,4 @@ -Copyright 2016 The Nunito Project Authors (contact@sansoxygen.com), +Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter) This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: diff --git a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/greetservice.ts b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/greetservice.ts new file mode 100644 index 0000000..760195a --- /dev/null +++ b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/greetservice.ts @@ -0,0 +1,10 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime"; + +export function Greet(name: string): $CancellablePromise { + return $Call.ByID(1411160069, name); +} diff --git a/internal/gui/frontend/wailsjs/go/main/App.d.ts b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.ts similarity index 58% rename from internal/gui/frontend/wailsjs/go/main/App.d.ts rename to internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.ts index 43173cf..50e3f04 100644 --- a/internal/gui/frontend/wailsjs/go/main/App.d.ts +++ b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.ts @@ -1,4 +1,7 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL // This file is automatically generated. DO NOT EDIT -export function Greet(arg1: string): Promise; +import * as GreetService from "./greetservice.js"; +export { + GreetService +}; diff --git a/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.ts b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.ts new file mode 100644 index 0000000..1ea1058 --- /dev/null +++ b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.ts @@ -0,0 +1,9 @@ +//@ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Create as $Create } from "@wailsio/runtime"; + +Object.freeze($Create.Events); diff --git a/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventdata.d.ts new file mode 100644 index 0000000..793ee3e --- /dev/null +++ b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -0,0 +1,14 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import type { Events } from "@wailsio/runtime"; + +declare module "@wailsio/runtime" { + namespace Events { + interface CustomEvents { + "time": string; + } + } +} diff --git a/internal/gui/frontend/bun.lock b/internal/gui/frontend/bun.lock index 3de305b..2576d28 100644 --- a/internal/gui/frontend/bun.lock +++ b/internal/gui/frontend/bun.lock @@ -3,255 +3,136 @@ "configVersion": 1, "workspaces": { "": { - "name": "frontend", + "name": "react-ts-latest", "dependencies": { - "react": "^19.1.0", - "react-dom": "^19.1.0", + "@wailsio/runtime": "latest", + "react": "^18.2.0", + "react-dom": "^18.2.0", }, "devDependencies": { - "@types/react": "^19.1.0", - "@types/react-dom": "^19.1.0", - "@vitejs/plugin-react": "^5.0.0", - "typescript": "^5.6.3", - "vite": "^7.0.0", + "@types/react": "^18.2.43", + "@types/react-dom": "^18.2.17", + "@vitejs/plugin-react": "^6.0.0", + "typescript": "^5.2.2", + "vite": "^8.0.5", }, }, }, "packages": { - "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], + "@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="], - "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], + "@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], - "@babel/core": ["@babel/core@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-module-transforms": "^7.29.7", "@babel/helpers": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA=="], + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], - "@babel/generator": ["@babel/generator@7.29.7", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], - "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.29.7", "", { "dependencies": { "@babel/compat-data": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g=="], + "@oxc-project/types": ["@oxc-project/types@0.139.0", "", {}, "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw=="], - "@babel/helper-globals": ["@babel/helper-globals@7.29.7", "", {}, "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA=="], + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.1.5", "", { "os": "android", "cpu": "arm64" }, "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ=="], - "@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.1.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw=="], - "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg=="], + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.1.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g=="], - "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.29.7", "", {}, "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw=="], + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.1.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA=="], - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.7", "", {}, "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw=="], + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.1.5", "", { "os": "linux", "cpu": "arm" }, "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw=="], - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.1.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q=="], - "@babel/helper-validator-option": ["@babel/helper-validator-option@7.29.7", "", {}, "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw=="], + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.1.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA=="], - "@babel/helpers": ["@babel/helpers@7.29.7", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg=="], + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.1.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg=="], - "@babel/parser": ["@babel/parser@7.29.7", "", { "dependencies": { "@babel/types": "^7.29.7" }, "bin": "./bin/babel-parser.js" }, "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg=="], + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.1.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA=="], - "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw=="], + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.1.5", "", { "os": "linux", "cpu": "x64" }, "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ=="], - "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q=="], + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.1.5", "", { "os": "linux", "cpu": "x64" }, "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg=="], - "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.1.5", "", { "os": "none", "cpu": "arm64" }, "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw=="], - "@babel/traverse": ["@babel/traverse@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-globals": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.7", "debug": "^4.3.1" } }, "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw=="], + "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.1.5", "", { "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.1.6" }, "cpu": "none" }, "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA=="], - "@babel/types": ["@babel/types@7.29.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA=="], + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.1.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="], + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.1.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="], + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.28.1", "", { "os": "android", "cpu": "arm64" }, "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.28.1", "", { "os": "android", "cpu": "x64" }, "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng=="], + "@types/prop-types": ["@types/prop-types@15.7.15", "", {}, "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.28.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q=="], + "@types/react": ["@types/react@18.3.31", "", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" } }, "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.28.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ=="], + "@types/react-dom": ["@types/react-dom@18.3.7", "", { "peerDependencies": { "@types/react": "^18.0.0" } }, "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.28.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@6.0.3", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler"] }, "sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.28.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ=="], + "@wailsio/runtime": ["@wailsio/runtime@3.0.0-alpha.97", "", {}, "sha512-alvEG6B0YqW7AcBcNaUWNMD9q8JWqx5AO6BPOZpijBeq4ZjhQxSom3jvvq8Z1mWSMKPEjSvlFirKIh9NLI3ajA=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.28.1", "", { "os": "linux", "cpu": "arm" }, "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ=="], - - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.28.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g=="], - - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.28.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w=="], - - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg=="], - - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ=="], - - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.28.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ=="], - - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ=="], - - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.28.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag=="], - - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.28.1", "", { "os": "linux", "cpu": "x64" }, "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA=="], - - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw=="], - - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.28.1", "", { "os": "none", "cpu": "x64" }, "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg=="], - - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.28.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q=="], - - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.28.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw=="], - - "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg=="], - - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.28.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ=="], - - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.28.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA=="], - - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.28.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg=="], - - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.28.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A=="], - - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], - - "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], - - "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], - - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - - "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.3", "", {}, "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q=="], - - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.62.2", "", { "os": "android", "cpu": "arm" }, "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg=="], - - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.62.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw=="], - - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.62.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A=="], - - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.62.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA=="], - - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.62.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw=="], - - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.62.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg=="], - - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg=="], - - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA=="], - - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA=="], - - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ=="], - - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg=="], - - "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ=="], - - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A=="], - - "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w=="], - - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg=="], - - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q=="], - - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.62.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg=="], - - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A=="], - - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg=="], - - "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.62.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg=="], - - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.62.2", "", { "os": "none", "cpu": "arm64" }, "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA=="], - - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.62.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg=="], - - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.62.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q=="], - - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg=="], - - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA=="], - - "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], - - "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], - - "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], - - "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], - - "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], - "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], - "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], - "@vitejs/plugin-react": ["@vitejs/plugin-react@5.2.0", "", { "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-rc.3", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw=="], + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.10.43", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ=="], + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "browserslist": ["browserslist@4.28.6", "", { "dependencies": { "baseline-browser-mapping": "^2.10.42", "caniuse-lite": "^1.0.30001803", "electron-to-chromium": "^1.5.389", "node-releases": "^2.0.51", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw=="], + "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], - "caniuse-lite": ["caniuse-lite@1.0.30001805", "", {}, "sha512-52noaS3DubycKSXaU30TwPGIp+POyQSUVa5jBEq3vkRkY0kjyb3LQgvhU6WGyCcyXqVLWO0Cw0Q6BSdD0kUfVA=="], + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], - "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], - "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], - "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], - "electron-to-chromium": ["electron-to-chromium@1.5.389", "", {}, "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg=="], + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], - "esbuild": ["esbuild@0.28.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", "@esbuild/android-arm64": "0.28.1", "@esbuild/android-x64": "0.28.1", "@esbuild/darwin-arm64": "0.28.1", "@esbuild/darwin-x64": "0.28.1", "@esbuild/freebsd-arm64": "0.28.1", "@esbuild/freebsd-x64": "0.28.1", "@esbuild/linux-arm": "0.28.1", "@esbuild/linux-arm64": "0.28.1", "@esbuild/linux-ia32": "0.28.1", "@esbuild/linux-loong64": "0.28.1", "@esbuild/linux-mips64el": "0.28.1", "@esbuild/linux-ppc64": "0.28.1", "@esbuild/linux-riscv64": "0.28.1", "@esbuild/linux-s390x": "0.28.1", "@esbuild/linux-x64": "0.28.1", "@esbuild/netbsd-arm64": "0.28.1", "@esbuild/netbsd-x64": "0.28.1", "@esbuild/openbsd-arm64": "0.28.1", "@esbuild/openbsd-x64": "0.28.1", "@esbuild/openharmony-arm64": "0.28.1", "@esbuild/sunos-x64": "0.28.1", "@esbuild/win32-arm64": "0.28.1", "@esbuild/win32-ia32": "0.28.1", "@esbuild/win32-x64": "0.28.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw=="], + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], - "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], - - "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], - "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], - "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], - "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], - "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - - "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], - - "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], "nanoid": ["nanoid@3.3.15", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA=="], - "node-releases": ["node-releases@2.0.51", "", {}, "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ=="], - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="], "postcss": ["postcss@8.5.17", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-J7EF+8X+CzRPaJPOv9Ck2wNWJvGnnl3PcNPAdGg6GTLjyVpyQ0yATMSXRFRV01BviT/9Gwuc3rjEyJbDJG9a4w=="], - "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], - - "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + "react": ["react@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ=="], - "react-refresh": ["react-refresh@0.18.0", "", {}, "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw=="], + "react-dom": ["react-dom@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw=="], - "rollup": ["rollup@4.62.2", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.62.2", "@rollup/rollup-android-arm64": "4.62.2", "@rollup/rollup-darwin-arm64": "4.62.2", "@rollup/rollup-darwin-x64": "4.62.2", "@rollup/rollup-freebsd-arm64": "4.62.2", "@rollup/rollup-freebsd-x64": "4.62.2", "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", "@rollup/rollup-linux-arm-musleabihf": "4.62.2", "@rollup/rollup-linux-arm64-gnu": "4.62.2", "@rollup/rollup-linux-arm64-musl": "4.62.2", "@rollup/rollup-linux-loong64-gnu": "4.62.2", "@rollup/rollup-linux-loong64-musl": "4.62.2", "@rollup/rollup-linux-ppc64-gnu": "4.62.2", "@rollup/rollup-linux-ppc64-musl": "4.62.2", "@rollup/rollup-linux-riscv64-gnu": "4.62.2", "@rollup/rollup-linux-riscv64-musl": "4.62.2", "@rollup/rollup-linux-s390x-gnu": "4.62.2", "@rollup/rollup-linux-x64-gnu": "4.62.2", "@rollup/rollup-linux-x64-musl": "4.62.2", "@rollup/rollup-openbsd-x64": "4.62.2", "@rollup/rollup-openharmony-arm64": "4.62.2", "@rollup/rollup-win32-arm64-msvc": "4.62.2", "@rollup/rollup-win32-ia32-msvc": "4.62.2", "@rollup/rollup-win32-x64-gnu": "4.62.2", "@rollup/rollup-win32-x64-msvc": "4.62.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA=="], + "rolldown": ["rolldown@1.1.5", "", { "dependencies": { "@oxc-project/types": "=0.139.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.1.5", "@rolldown/binding-darwin-arm64": "1.1.5", "@rolldown/binding-darwin-x64": "1.1.5", "@rolldown/binding-freebsd-x64": "1.1.5", "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", "@rolldown/binding-linux-arm64-gnu": "1.1.5", "@rolldown/binding-linux-arm64-musl": "1.1.5", "@rolldown/binding-linux-ppc64-gnu": "1.1.5", "@rolldown/binding-linux-s390x-gnu": "1.1.5", "@rolldown/binding-linux-x64-gnu": "1.1.5", "@rolldown/binding-linux-x64-musl": "1.1.5", "@rolldown/binding-openharmony-arm64": "1.1.5", "@rolldown/binding-wasm32-wasi": "1.1.5", "@rolldown/binding-win32-arm64-msvc": "1.1.5", "@rolldown/binding-win32-x64-msvc": "1.1.5" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA=="], - "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], - - "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], - "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - - "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "vite": ["vite@7.3.6", "", { "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg=="], + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + "vite": ["vite@8.1.4", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.5", "postcss": "^8.5.16", "rolldown": "~1.1.4", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.3.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ=="], } } diff --git a/internal/gui/frontend/index.html b/internal/gui/frontend/index.html index c5cdb98..3ede8b4 100644 --- a/internal/gui/frontend/index.html +++ b/internal/gui/frontend/index.html @@ -1,13 +1,15 @@ - - - - temp - - -
- - + + + + + + Wails + React + TS + + + +
+ + - diff --git a/internal/gui/frontend/package-lock.json b/internal/gui/frontend/package-lock.json new file mode 100644 index 0000000..132c34e --- /dev/null +++ b/internal/gui/frontend/package-lock.json @@ -0,0 +1,425 @@ +{ + "name": "react-ts-latest", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "react-ts-latest", + "version": "0.0.0", + "dependencies": { + "@wailsio/runtime": "latest", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.43", + "@types/react-dom": "^18.2.17", + "@vitejs/plugin-react": "^6.0.0", + "typescript": "^5.2.2", + "vite": "^8.0.5" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.139.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.5", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.31", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/@wailsio/runtime": { + "version": "3.0.0-alpha.97", + "resolved": "https://registry.npmjs.org/@wailsio/runtime/-/runtime-3.0.0-alpha.97.tgz", + "integrity": "sha512-alvEG6B0YqW7AcBcNaUWNMD9q8JWqx5AO6BPOZpijBeq4ZjhQxSom3jvvq8Z1mWSMKPEjSvlFirKIh9NLI3ajA==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.15", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.17", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "18.3.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/rolldown": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.139.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.1.5", + "@rolldown/binding-darwin-arm64": "1.1.5", + "@rolldown/binding-darwin-x64": "1.1.5", + "@rolldown/binding-freebsd-x64": "1.1.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", + "@rolldown/binding-linux-arm64-gnu": "1.1.5", + "@rolldown/binding-linux-arm64-musl": "1.1.5", + "@rolldown/binding-linux-ppc64-gnu": "1.1.5", + "@rolldown/binding-linux-s390x-gnu": "1.1.5", + "@rolldown/binding-linux-x64-gnu": "1.1.5", + "@rolldown/binding-linux-x64-musl": "1.1.5", + "@rolldown/binding-openharmony-arm64": "1.1.5", + "@rolldown/binding-wasm32-wasi": "1.1.5", + "@rolldown/binding-win32-arm64-msvc": "1.1.5", + "@rolldown/binding-win32-x64-msvc": "1.1.5" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vite": { + "version": "8.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.16", + "rolldown": "~1.1.4", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.3.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/internal/gui/frontend/package.json b/internal/gui/frontend/package.json index f4ae2b4..8b2f1ec 100644 --- a/internal/gui/frontend/package.json +++ b/internal/gui/frontend/package.json @@ -1,22 +1,24 @@ { - "name": "frontend", + "name": "react-ts-latest", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", - "build": "tsc && vite build", + "build:dev": "tsc && vite build --minify false --mode development", + "build": "tsc && vite build --mode production", "preview": "vite preview" }, "dependencies": { - "react": "^19.1.0", - "react-dom": "^19.1.0" + "@wailsio/runtime": "latest", + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^19.1.0", - "@types/react-dom": "^19.1.0", - "@vitejs/plugin-react": "^5.0.0", - "typescript": "^5.6.3", - "vite": "^7.0.0" + "@types/react": "^18.2.43", + "@types/react-dom": "^18.2.17", + "@vitejs/plugin-react": "^6.0.0", + "typescript": "^5.2.2", + "vite": "^8.0.5" } -} \ No newline at end of file +} diff --git a/internal/gui/frontend/package.json.md5 b/internal/gui/frontend/package.json.md5 deleted file mode 100644 index 56e9e6b..0000000 --- a/internal/gui/frontend/package.json.md5 +++ /dev/null @@ -1 +0,0 @@ -ebabc2ea396231dd6d5148053c60fb95 \ No newline at end of file diff --git a/internal/gui/frontend/public/Inter-Medium.ttf b/internal/gui/frontend/public/Inter-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a01f3777a6fc284b7a720c0f8248a27066389ef9 GIT binary patch literal 315132 zcmd>{3Ajzw|M0(S?X!n-?sds<&AMdHJY`De%rlit*Gxz*k|ZQaMWm8sCL|H5Orgje zLX;sYN}^G@hWmcjK4)L_tKaY+-sgFr_ul8T*4k_QuJ8KpwfA0opS?wiNG6<+$lZ18 z)h}DV>>3eWoroNFw`kt_=)7a6M2)O0s^ph46$l{1e>k6gWyQwEyWNY9Gz_3HOX&vyAf z)S{Q>5MAJ8?;gqBOFo}`FX>%Kuhg4}e4BH=#y0Xu!QTA`56g7y>@Ol2dy5p=(eJ@- z$>AZbE{NPwf$hEhlZOqA#4CsVv?oaelKb~){O#aW5vPqvIP<^B5&SN zzrXqG{ycsElt;op`!QDN*v#5b&hDJC`frju&adR?&uep=z_GS14*mY-l@WRR#%E^J z5gn_;)b6n*lGS$$ihj6P@4+ggNJ_r}gHSL1OfsF!hHQL}O9s)M+nsb6q^Qx|dn(6vPA zI=TUFBi#nKoleH>rm-LWq<#hWRsAaNOuY_wquz}Bk=}y4L+`}htv|#4+^Q|gs%JIC zZDKuyJJ=e6`-n9Tcf7Rn$I0&?vs26| zhFiiZfm_XC?3_kUBivR_Pu$*4Z`=o*2XF^C18^U9hKc1o;ygllxHE$A80QJxxz0jS zuIEyxThJ|tTgUBy+u7}m`?&iA?o;klxKF!J<38g~!kywy!JX<(#hvD&2lrK%QFa%* zi*es@m*OsSm*cK3;-OD(xHp{e)}Vk zj}jgoW^}?YgkQj&9-fZ-es~?J8^W6i?+WiGygz&h_el5{?w4U|4u2c|7WaG@4Tpb< z&3F~`P%|^Jmxw&?#K*!)a@fDd!depS)3LB6rR?`&;m{3vY^h|U1HT@J_`b2QD{bt= zSlAQKPKbrWk`y{03&#=O6AQ=R5YC{ItYxwI1gT)5Z@>Ob60rux!na7g)jbx@d_A7& zF41ZhjaN$YSmk12Emid&v9Kle_1m#?vid~S~a&&R@fB%ch5h4XS)iH$F^BublD{H+{eYRAG!9CZrB!ugRWM=V@`kdUjN zBuh7WfLsk_FyVgEhwba}^<)_FgGi|@50cvbPdWcF{jc){v8|mem2h13VpUJrSMT9Ty>3?!}(7+ojH-SDu#-J4JfsYA$L->-WxHJI`PNg0eR zrk)%OnM*bDYd9+u%CMXc}>W)X;S;MZTi-o7KTVyUt%M{ zpqpyy=F2mb5@zI$)P2a=gfb8NwcIE}lbcEgd7JyvnwADob^xWW$D|N5?1t^0zAS_O zQtAi&vUMquf)xFc*ywzS->W{9Gc5#~G(9rbkmBnx1>HsEAMVR+MkEQ{8BLp>rLbir zGrCS9&XgYD_t!`p9oeqL4kG72YyWz`jLr6f!IZesh8y~=80{Nt9gJqGN@@O6kj9Lc zv5gcd1xCxI{5E@$-W-c)!v1aS(MVgL6eDkvv?kP((8K7#*oWzf$r0U;dyvc6hZ(zQ zpG@0PYchFTv)7wZyDs_ln$4cljk3`iN|37^TSfn*nUt7Tjja8l6mAc+*oxXs%n;lp+B0Ju?NN%a&mjNx zQA%QOYv@ZAwTBy1qIx#6N9RXVm)WNV`Ln4R6=O?*1lLQJyvZW|tkd#HTL!IG;ff$? zK_%HvmWsrckxH~t1`Xbrs}-Zz6sjSqu?f?oo7-qboY_;%TtDcBTuC=cQU@IjWS%m1 z7|f>SXw48EVPi4Z+enfY7y8oNVG@2$=8*Bb|Yth z#wE~FX<80?P)sDQpt&yPN^GUn|6ii|e_rpkJ?_f1l28#`I0oDP{d)d+`M8MGzY({b zoVDP42V>h{^2j=f$(R9Lo&d7Uiy12EF<#m^3% zk;mAc3tNaQ3?C4lt$)Av9sZ_hKH0z`#ŹD@)<7ltOtn$SSm;LMTrPEA?sR43d= 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�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 literal 0 HcmV?d00001 diff --git a/internal/gui/frontend/public/bg-desktop.jpg b/internal/gui/frontend/public/bg-desktop.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0fc626bac0aa19ab58d7c676b0daa061f1ba808e GIT binary patch literal 191565 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≤96MPsxRfzqPm)|p9MvZ&j; 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�-xkaAE{#F=0`wWQ-7<55LTj!#No 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 t?@hqkaFr=&$aIV@BjZl&+B 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%0D{yU&Dg$cjZ23x~=PrwfWRhF7soy?~MbcN7mRqKG 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 literal 0 HcmV?d00001 diff --git a/internal/gui/frontend/public/react.svg b/internal/gui/frontend/public/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/internal/gui/frontend/public/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/internal/gui/frontend/public/style.css b/internal/gui/frontend/public/style.css new file mode 100644 index 0000000..39fce74 --- /dev/null +++ b/internal/gui/frontend/public/style.css @@ -0,0 +1,368 @@ +:root { + /* Neon-night design tokens. */ + --ink: #06070f; /* darkest base behind the image */ + --text: #f4f6fb; + --muted: #9aa6c0; + --accent: #ff4d4d; /* Wails red */ + --accent-2: #ff2d72; /* pink, used in gradients */ + --glass: rgba(255, 255, 255, 0.05); + --glass-strong: rgba(255, 255, 255, 0.08); + --glass-border: rgba(255, 255, 255, 0.12); + --radius: 11px; + --grad: linear-gradient(135deg, #ff5a4d 0%, #ff2d72 100%); + + /* Golden-ratio spacing scale (Ο† β‰ˆ 1.618), used for the vertical rhythm. */ + --s-1: 0.618rem; /* φ⁻¹ */ + --s-2: 1rem; + --s-3: 1.618rem; /* Ο† */ + --s-4: 2.618rem; /* φ² */ + --s-5: 4.236rem; /* φ³ */ + + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + color-scheme: dark; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +* { box-sizing: border-box; } + +html { + background: var(--ink); +} +html, body { + margin: 0; + color: var(--text); +} +body { + overflow-x: hidden; + /* Nothing in the chrome is selectable (it's an app, not a document); the + text input opts back in below. */ + -webkit-user-select: none; + user-select: none; + /* Drag the window by its background. Interactive controls opt out with + --wails-draggable: no-drag (the property inherits). */ + --wails-draggable: drag; +} + +/* Framework mount nodes (#app / #root) shouldn't affect layout, so the + body flex centering applies directly to .container. */ +#app, #root { display: contents; } + +/* Interactive elements: clickable (not draggable) and, for the input, selectable. */ +.brand-mark, .brand-badge, .input-box, .btn, .footer-docs, .toast { + --wails-draggable: no-drag; +} +.input, input[type="text"] { + -webkit-user-select: text; + user-select: text; +} + +/* ----- Background layer ---------------------------------------------------- + A fixed, full-viewport layer rather than `background-attachment: fixed` + (which iOS WKWebView ignores / renders janky). A dark gradient is layered + over the photo so foreground text stays legible. On desktop the gradient is + weighted to the left, where the content sits. */ +.bg { + position: fixed; + inset: 0; + z-index: -1; + background: + linear-gradient(90deg, rgba(6, 7, 15, 0.94) 0%, rgba(6, 7, 15, 0.78) 32%, + rgba(6, 7, 15, 0.42) 64%, rgba(6, 7, 15, 0.30) 100%), + linear-gradient(0deg, rgba(6, 7, 15, 0.70) 0%, rgba(6, 7, 15, 0.10) 45%), + url("/bg-desktop.jpg") center / cover no-repeat; +} + +body { + min-height: 100vh; + min-height: 100dvh; + display: flex; + flex-direction: column; /* content area + footer pinned to the bottom */ + /* Respect mobile safe areas (notch / home indicator). No bottom padding: + the footer sits flush at the bottom edge. */ + /* Wider outer margins on the golden scale (φ² top/right, φ³ left). */ + padding: max(var(--s-4), env(safe-area-inset-top)) max(var(--s-4), env(safe-area-inset-right)) + 0 max(var(--s-5), env(safe-area-inset-left)); +} + +.container { + flex: 1 0 auto; /* fill the space above the footer */ + width: 100%; + max-width: 540px; + display: flex; + flex-direction: column; + justify-content: center; /* vertically centre the content */ + align-items: flex-start; + text-align: left; +} + +/* ----- Brand row ----------------------------------------------------------- */ +.brand { + display: flex; + align-items: center; + gap: var(--s-2); + /* No top margin β€” the content block is vertically centred, so an extra top + margin would push everything (incl. the input) down. φ² gap below. */ + margin-bottom: var(--s-4); +} +.brand-mark, .brand-badge { + display: inline-flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: transform 0.2s ease, filter 0.2s ease; +} +.brand-mark:hover, .brand-badge:hover { + transform: translateY(-2px); + filter: drop-shadow(0 0 1em rgba(255, 77, 77, 0.45)); +} +/* Logo heights sit on the golden scale (φ³ = 4.236rem). The Wails mark carries + its wordmark, so the badge is one golden step smaller (φ³ Γ· βˆšΟ†) to keep the + pair visually balanced. */ +.brand-logo { height: var(--s-5); width: auto; display: block; object-fit: contain; } +.brand-badge img { height: calc(var(--s-5) / 1.272); width: auto; display: block; object-fit: contain; } + +/* ----- Version badge ------------------------------------------------------- */ +.badge { + display: inline-block; + padding: 4px 12px; + margin-bottom: 1.1rem; + font-size: 12px; + font-weight: 700; + letter-spacing: 0.02em; + color: #ff7a8f; + background: rgba(255, 45, 114, 0.14); + border: 1px solid rgba(255, 45, 114, 0.32); + border-radius: 999px; +} + +/* ----- Heading ------------------------------------------------------------- */ +.title { + margin: 0 0 var(--s-2); + max-width: 100%; + font-size: clamp(2.5rem, 7.5vw, 3.7rem); + line-height: 1.05; + font-weight: 800; + letter-spacing: -0.02em; + color: var(--text); + overflow-wrap: break-word; +} +.title-accent { + background: var(--grad); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + color: transparent; +} + +/* The framework word ("JavaScript") crossfades to the entered name on Greet: + the outgoing word is taken out of flow and fades out while the incoming word + fades in over the same spot. */ +.title-name { position: relative; display: inline-block; } +.title-name-text { + display: inline-block; + transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 0.68, 0.2, 1); +} +.title-name-text.is-outgoing { position: absolute; left: 0; top: 0; } +.title-name-text.is-entering { opacity: 0; transform: translateY(0.3em); } /* rises in from below */ +.title-name-text.is-leaving { opacity: 0; transform: translateY(-0.3em); } /* lifts out upward */ + +.subtitle { + margin: 0 0 var(--s-5); + max-width: 32rem; + color: var(--muted); + font-size: clamp(1.05rem, 2.9vw, 1.2rem); + line-height: 1.55; +} + +/* ----- Greet input + button ------------------------------------------------ */ +/* Input row and the card below it are sized down so they sit more compact + under the heading. */ +.greet { width: 62%; } + +/* Input font is pinned at 16px: iOS Safari/WKWebView zooms the page when an + input under 16px gains focus, so the whole control is sized around that. + Tight vertical padding keeps it ~36px tall, icon : control β‰ˆ 1 : Ο†. */ +.input-box { + display: flex; + align-items: center; + gap: 7px; + width: 100%; + padding: 4px 5px 4px 11px; + background: var(--glass); + border: 1px solid var(--glass-border); + border-radius: var(--radius); + -webkit-backdrop-filter: blur(12px); + backdrop-filter: blur(12px); + transition: border-color 0.2s ease; +} +.input-box:focus-within { border-color: rgba(255, 77, 77, 0.55); } + +.input-icon { + width: 23px; + height: 23px; + flex: 0 0 auto; + color: var(--muted); +} + +.input, +input[type="text"] { + flex: 1; + min-width: 0; + background: transparent; + border: none; + color: var(--text); + font-size: 16px; + padding: 5px 2px; + outline: none; +} +.input::placeholder { color: rgba(154, 166, 192, 0.7); } + +.btn { + flex: 0 0 auto; + display: inline-flex; + align-items: center; + gap: 5px; + border: none; + background: var(--grad); + color: #fff; + padding: 6px 15px; + border-radius: 8px; + font-size: 14px; + font-weight: 600; + cursor: pointer; + box-shadow: 0 6px 18px rgba(255, 45, 114, 0.35); + transition: transform 0.1s ease, box-shadow 0.2s ease, opacity 0.2s ease; +} +.btn svg { width: 17px; height: 17px; } +.btn:hover { box-shadow: 0 8px 24px rgba(255, 45, 114, 0.5); } +.btn:active { transform: scale(0.97); } + +/* ----- Toast (the reply from Go) ------------------------------------------- */ +/* Fixed overlay near the bottom, so showing the greeting never reflows the page. + The Go-blue badge makes it obvious the string was produced by the Go backend. */ +.toast { + position: fixed; + /* Top-right with an equal golden-ratio inset (Ο† = 1.618rem) on both edges, + clear of the macOS traffic lights (which are on the left). Falls back to + the notch / safe area when larger. Drops in from just above. */ + top: max(var(--s-3), env(safe-area-inset-top)); + right: max(var(--s-3), env(safe-area-inset-right)); + z-index: 20; + display: inline-flex; + flex-direction: column; + align-items: flex-start; + gap: 3px; + max-width: min(86vw, 420px); + padding: 11px 16px; + background: rgba(13, 17, 28, 0.72); + border: 1px solid var(--glass-border); + border-radius: 14px; + -webkit-backdrop-filter: blur(16px); + backdrop-filter: blur(16px); + box-shadow: 0 16px 44px rgba(0, 0, 0, 0.45); + color: var(--text); + font-size: 15px; + line-height: 1.45; + opacity: 0; + pointer-events: none; + transform: translateY(-16px); + transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1); +} +.toast.is-visible { + opacity: 1; + transform: translateY(0); +} +/* Muted, on-palette label so it's clear the string came from the Go backend. */ +.toast-label { + font-size: 10.5px; + font-weight: 700; + letter-spacing: 0.09em; + text-transform: uppercase; + color: var(--muted); +} +.toast-msg { min-width: 0; } + +/* ----- Footer -------------------------------------------------------------- */ +/* Thin bar pinned to the bottom: version far-left, live clock centered. */ +.footer-divider { + width: 100%; + height: 0; + border: none; + border-top: 1px solid rgba(255, 255, 255, 0.1); + margin: 0; +} +.footer { + display: grid; + grid-template-columns: 1fr auto 1fr; /* version | clock | spacer */ + align-items: center; + width: 100%; + /* keep the bar off the very edge and clear of the home indicator */ + padding: 11px max(0.5rem, env(safe-area-inset-right)) + max(11px, env(safe-area-inset-bottom)) 0; + color: var(--muted); + font-size: 12.5px; +} +.footer-version { + justify-self: start; + display: inline-flex; + align-items: center; + gap: 7px; + white-space: nowrap; +} +.footer-time { + justify-self: center; + display: inline-flex; + align-items: center; + gap: 7px; +} +.footer-time svg { width: 19px; height: 19px; opacity: 0.85; } +.footer-docs { + justify-self: end; + display: inline-flex; + align-items: center; + gap: 5px; + color: var(--muted); + text-decoration: none; + cursor: pointer; + white-space: nowrap; + transition: color 0.2s ease; +} +.footer-docs:hover { color: var(--text); } +.footer-docs svg { width: 17px; height: 17px; } +.dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: var(--accent); + box-shadow: 0 0 8px var(--accent); +} + +/* ----- Mobile -------------------------------------------------------------- */ +@media (max-width: 640px) { + .bg { + background: + linear-gradient(0deg, rgba(6, 7, 15, 0.92) 0%, rgba(6, 7, 15, 0.55) 40%, + rgba(6, 7, 15, 0.45) 100%), + url("/bg-mobile.jpg") center / cover no-repeat; + } + .container { align-items: center; text-align: center; margin: 0 auto; } + /* Stack the title onto two lines ("Wails +" / "Javascript") like the target. */ + .title-accent { display: block; } + .subtitle { margin-left: auto; margin-right: auto; } + /* A touch more width back on small screens so the input stays usable. */ + .greet { width: 86%; } + /* Trim the surround on a phone, but keep the input at 16px (iOS focus-zoom + guard) β€” only the padding/button/icon shrink, not the field's text. */ + .input-box { padding: 3px 4px 3px 10px; gap: 6px; } + .input-icon { width: 21px; height: 21px; } + .input { font-size: 16px; padding: 4px 2px; } + .btn { padding: 5px 13px; font-size: 14px; gap: 5px; } + .btn svg { width: 16px; height: 16px; } + /* Three items (version / clock / docs) share a narrow row β€” shrink to fit. */ + .footer { font-size: 11px; gap: 4px; } + .footer-time { gap: 5px; } + .footer-time svg { width: 13px; height: 13px; } +} diff --git a/internal/gui/frontend/public/wails.png b/internal/gui/frontend/public/wails.png new file mode 100644 index 0000000000000000000000000000000000000000..8bdf424833bfb5b6b34a0807224e94533f738f2e GIT binary patch literal 9057 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 setName(e.target.value); - const updateResultText = (result: string) => setResultText(result); + const [name, setName] = useState(''); + const [time, setTime] = useState('Listening for Time event...'); + + const titleNameRef = useRef(null); + const toastRef = useRef(null); + const resultRef = useRef(null); + const toastTimer = useRef | undefined>(undefined); + + // Crossfade the framework word in the heading ("Wails + React") to the name + // the user entered ("Wails + "): the old word fades out while the new one + // fades in over the same spot. + const swapTitleName = (name: string) => { + const titleNameElement = titleNameRef.current; + if (!titleNameElement) { + return; + } + const current = titleNameElement.querySelector('.title-name-text:not(.is-outgoing)'); + if (!current || current.textContent === name) { + return; + } + const incoming = document.createElement('span'); + incoming.className = 'title-name-text is-entering'; + incoming.textContent = name; + current.classList.add('is-outgoing'); + titleNameElement.appendChild(incoming); + // Force a reflow so the transitions run from the starting state. + void incoming.offsetWidth; + incoming.classList.remove('is-entering'); + current.classList.add('is-leaving'); + current.addEventListener('transitionend', () => current.remove(), {once: true}); + }; - function greet() { - Greet(name).then(updateResultText); + // Pop the toast with the message Go returned, then auto-dismiss it. + const showToast = (message: string) => { + if (resultRef.current) { + resultRef.current.innerText = message; + } + if (toastRef.current) { + toastRef.current.classList.add('is-visible'); } + clearTimeout(toastTimer.current); + toastTimer.current = setTimeout(() => { + if (toastRef.current) { + toastRef.current.classList.remove('is-visible'); + } + }, 4000); + }; - return ( - ) } diff --git a/internal/gui/greetservice.go b/internal/gui/greetservice.go deleted file mode 100644 index 8972c39..0000000 --- a/internal/gui/greetservice.go +++ /dev/null @@ -1,7 +0,0 @@ -package main - -type GreetService struct{} - -func (g *GreetService) Greet(name string) string { - return "Hello " + name + "!" -} diff --git a/internal/gui/main.go b/internal/gui/main.go index e4f1fb4..a2097ef 100644 --- a/internal/gui/main.go +++ b/internal/gui/main.go @@ -1,52 +1,39 @@ -package main +package gui import ( "embed" "log" - "os" "runtime" "time" "github.com/wailsapp/wails/v3/pkg/application" "github.com/wailsapp/wails/v3/pkg/events" "github.com/wailsapp/wails/v3/pkg/icons" - - "github.com/neozmmv/blindspot/cmd" - "github.com/neozmmv/blindspot/internal/platform" ) //go:embed all:frontend/dist var assets embed.FS func init() { - application.RegisterEvent[string]("time") + // Payload emitted to the frontend whenever the session state changes. + application.RegisterEvent[Status]("status") } -func main() { - if len(os.Args) > 1 { - if err := cmd.Execute(); err != nil { - os.Exit(1) - } - return - } +// Run launches the system-tray GUI. It is invoked by the root binary when +// blindspot is started with no CLI arguments (double-click / bare launch). icon is +// the application icon (PNG or ICO bytes), embedded by the root package. +func Run(icon []byte) { + tray := &TrayService{} - if runtime.GOOS == "windows" && platform.WasLaunchedFromTerminal() { - platform.AttachToParentConsole() - if err := cmd.Execute(); err != nil { - os.Exit(1) - } - return - } - - runGUI() -} + // Declared up front so the SingleInstance callback below (and the tray menu) can + // close over it; assigned once the app exists. + var window *application.WebviewWindow -func runGUI() { app := application.New(application.Options{ Name: "Blindspot", Description: "P2P Toolkit: VPN, File Sharing, Chat, and More", Services: []application.Service{ - application.NewService(&GreetService{}), + application.NewService(tray), }, Assets: application.AssetOptions{ Handler: application.AssetFileServerFS(assets), @@ -54,11 +41,25 @@ func runGUI() { Mac: application.MacOptions{ ActivationPolicy: application.ActivationPolicyAccessory, }, + // Enforce a single running tray: a second launch exits immediately and asks + // the existing instance to surface its window instead of opening another one. + SingleInstance: &application.SingleInstanceOptions{ + UniqueID: "dev.enzogp.blindspot.tray", + OnSecondInstanceLaunch: func(application.SecondInstanceData) { + if window != nil { + window.Show().Focus() + } + }, + }, }) systemTray := app.SystemTray.New() - window := app.Window.NewWithOptions(application.WebviewWindowOptions{ + // quitting flips true only when the user chooses Quit, so the close hook below + // knows to let the app actually terminate instead of just hiding the window. + quitting := false + + window = app.Window.NewWithOptions(application.WebviewWindowOptions{ Title: "Blindspot", Width: 400, Height: 600, @@ -75,22 +76,47 @@ func runGUI() { }, }) + // Closing the tray window just hides it β€” the app keeps running in the tray, + // unless the user picked Quit from the tray menu. window.RegisterHook(events.Common.WindowClosing, func(e *application.WindowEvent) { + if quitting { + return + } window.Hide() e.Cancel() }) + // Custom tray icon + hover tooltip. macOS wants a monochrome template icon, so + // keep the built-in there; every other platform gets the Blindspot icon. if runtime.GOOS == "darwin" { systemTray.SetTemplateIcon(icons.SystrayMacTemplate) + } else { + systemTray.SetIcon(icon) } + systemTray.SetTooltip("Blindspot") systemTray.AttachWindow(window).WindowOffset(5) + // Right-click menu on the tray icon. Left-click still toggles the panel; + // setting a menu makes Wails wire right-click to open it (see SystemTray.bind). + trayMenu := application.NewMenu() + trayMenu.Add("Show Blindspot").OnClick(func(_ *application.Context) { + window.Show().Focus() + }) + trayMenu.AddSeparator() + trayMenu.Add("Quit Blindspot").OnClick(func(_ *application.Context) { + quitting = true + app.Quit() + }) + systemTray.SetMenu(trayMenu) + + // Push session status to the frontend on a slow tick so the panel reflects the + // daemon coming up, peers joining/leaving, or the daemon dying, without the UI + // having to poll over the bindings. go func() { for { - now := time.Now().Format(time.RFC1123) - app.Event.Emit("time", now) - time.Sleep(time.Second) + app.Event.Emit("status", tray.GetStatus()) + time.Sleep(2 * time.Second) } }() diff --git a/internal/gui/proc_other.go b/internal/gui/proc_other.go new file mode 100644 index 0000000..4ef8a16 --- /dev/null +++ b/internal/gui/proc_other.go @@ -0,0 +1,22 @@ +//go:build !windows + +package gui + +import ( + "os" + "os/exec" + "syscall" +) + +// isProcessAlive reports whether the process with the given PID is still running, +// using signal 0 (the POSIX liveness probe). +func isProcessAlive(pid int) bool { + proc, err := os.FindProcess(pid) + if err != nil { + return false + } + return proc.Signal(syscall.Signal(0)) == nil +} + +// hideConsole is a no-op off Windows. +func hideConsole(cmd *exec.Cmd) {} diff --git a/internal/gui/proc_windows.go b/internal/gui/proc_windows.go new file mode 100644 index 0000000..16caf85 --- /dev/null +++ b/internal/gui/proc_windows.go @@ -0,0 +1,31 @@ +//go:build windows + +package gui + +import ( + "os/exec" + "syscall" + + "golang.org/x/sys/windows" +) + +// isProcessAlive reports whether the process with the given PID is still running. +// Mirrors cmd/pid_windows.go so tray status matches what the CLI reports. +func isProcessAlive(pid int) bool { + h, err := windows.OpenProcess(windows.PROCESS_QUERY_LIMITED_INFORMATION, false, uint32(pid)) + if err != nil { + return false + } + defer windows.CloseHandle(h) + var exitCode uint32 + if err := windows.GetExitCodeProcess(h, &exitCode); err != nil { + return false + } + return exitCode == 259 // STILL_ACTIVE +} + +// hideConsole prevents a console window from flashing when the tray shells out to +// the blindspot CLI binary. +func hideConsole(cmd *exec.Cmd) { + cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true, CreationFlags: 0x08000000} // CREATE_NO_WINDOW +} diff --git a/internal/gui/trayservice.go b/internal/gui/trayservice.go new file mode 100644 index 0000000..8a7bbcf --- /dev/null +++ b/internal/gui/trayservice.go @@ -0,0 +1,372 @@ +package gui + +import ( + "bufio" + "encoding/json" + "fmt" + "os" + "os/exec" + "path/filepath" + "strconv" + "strings" + "sync" + "time" + + "github.com/wailsapp/wails/v3/pkg/application" + + bstun "github.com/neozmmv/blindspot/internal/tun" + "github.com/neozmmv/blindspot/internal/utils" +) + +// Session state files written by the connect daemon (see cmd/connect.go). The tray +// reads them directly for status rather than shelling out on every tick. +func sessionPIDFile() string { return filepath.Join(utils.GetBlindspotDir(), "session.pid") } +func sessionStopFile() string { return filepath.Join(utils.GetBlindspotDir(), "session.stop") } +func peersFile() string { return filepath.Join(utils.GetBlindspotDir(), "peers.json") } + +// Peer is one connected member of the active session. +type Peer struct { + VirtualIP string `json:"virtualIP"` + PublicAddr string `json:"publicAddr"` +} + +// Status is the snapshot pushed to the frontend, both on request and via the +// periodic "status" event. +type Status struct { + Connected bool `json:"connected"` + MyIP string `json:"myIP"` + Peers []Peer `json:"peers"` + Busy bool `json:"busy"` // a connect/send is in flight + Receiving bool `json:"receiving"` // a receive listener is running + Transfer string `json:"transfer"` // latest file-transfer status line +} + +// TrayService is the bridge exposed to the frontend. It wraps the same commands a +// user would run in a terminal β€” shelling out to the blindspot binary for the +// operations that need privilege elevation or long-running transfer logic +// (connect / send / receive), and reading the on-disk session state directly for +// everything else. +type TrayService struct { + mu sync.Mutex + busy bool + transfer string + recvCmd *exec.Cmd // running `receive` process, if any +} + +// selfExe returns the path to the running blindspot binary so the tray can invoke +// its own CLI subcommands. +func selfExe() string { + exe, err := os.Executable() + if err != nil { + return "blindspot" + } + return exe +} + +func (s *TrayService) sessionRunning() bool { + data, err := os.ReadFile(sessionPIDFile()) + if err != nil { + return false + } + pid, err := strconv.Atoi(strings.TrimSpace(string(data))) + if err != nil || !isProcessAlive(pid) { + // Stale files from an unclean shutdown β€” clear them, matching the CLI. + os.Remove(sessionPIDFile()) + os.Remove(sessionStopFile()) + os.Remove(peersFile()) + return false + } + return true +} + +func (s *TrayService) readPeers() []Peer { + data, err := os.ReadFile(peersFile()) + if err != nil || len(data) == 0 { + return []Peer{} + } + // The daemon writes cmd.PeerEntry ({virtual_ip, public_addr}); decode into the + // shape the frontend consumes. + var raw []struct { + VirtualIP string `json:"virtual_ip"` + PublicAddr string `json:"public_addr"` + } + if err := json.Unmarshal(data, &raw); err != nil { + return []Peer{} + } + peers := make([]Peer, 0, len(raw)) + for _, p := range raw { + peers = append(peers, Peer{VirtualIP: p.VirtualIP, PublicAddr: p.PublicAddr}) + } + return peers +} + +// MyIP returns this device's virtual IP, derived from the (cleartext) public key. +// Works even when the identity is encrypted at rest. Empty if no identity exists. +func (s *TrayService) MyIP() string { + publicKey, err := utils.ReadPublicKey() + if err != nil { + return "" + } + return bstun.VirtualIPv4(publicKey) +} + +// GetStatus returns the current session snapshot. +func (s *TrayService) GetStatus() Status { + connected := s.sessionRunning() + var peers []Peer + if connected { + peers = s.readPeers() + } else { + peers = []Peer{} + } + s.mu.Lock() + busy, transfer, receiving := s.busy, s.transfer, s.recvCmd != nil + s.mu.Unlock() + return Status{ + Connected: connected, + MyIP: s.MyIP(), + Peers: peers, + Busy: busy, + Receiving: receiving, + Transfer: transfer, + } +} + +// emit pushes a fresh status snapshot to the frontend immediately (used after an +// action so the UI doesn't wait for the next poll tick). +func (s *TrayService) emit() { + if app := application.Get(); app != nil { + app.Event.Emit("status", s.GetStatus()) + } +} + +func (s *TrayService) setBusy(b bool) { + s.mu.Lock() + s.busy = b + s.mu.Unlock() + s.emit() +} + +func (s *TrayService) setTransfer(msg string) { + s.mu.Lock() + s.transfer = msg + s.mu.Unlock() + s.emit() +} + +// Connect runs `blindspot connect -s -p [-n]`, which triggers +// the UAC elevation + daemon launch and blocks until the session is up (or fails). +// It returns the final status line the CLI printed. +func (s *TrayService) Connect(session, password string, isNew bool) (string, error) { + session = strings.TrimSpace(session) + if session == "" { + return "", fmt.Errorf("session name is required") + } + if isNew && len(password) < 8 { + return "", fmt.Errorf("a new session needs a password of at least 8 characters") + } + if s.sessionRunning() { + return "", fmt.Errorf("already connected β€” disconnect first") + } + + args := []string{"connect", "-s", session} + if password != "" { + args = append(args, "-p", password) + } + if isNew { + args = append(args, "-n") + } + + s.setBusy(true) + defer s.setBusy(false) + + out, err := s.runCLI(args...) + s.emit() + if err != nil { + if out != "" { + return "", fmt.Errorf("%s", out) + } + return "", err + } + return out, nil +} + +// Disconnect signals the running daemon to stop (the same mechanism as +// `blindspot disconnect`) and waits briefly for it to tear down. +func (s *TrayService) Disconnect() (string, error) { + if !s.sessionRunning() { + return "No active session.", nil + } + if err := os.WriteFile(sessionStopFile(), []byte("stop"), 0600); err != nil { + return "", fmt.Errorf("could not signal daemon: %w", err) + } + deadline := time.Now().Add(10 * time.Second) + for time.Now().Before(deadline) { + if _, err := os.Stat(sessionPIDFile()); os.IsNotExist(err) { + s.emit() + return "Disconnected.", nil + } + time.Sleep(200 * time.Millisecond) + } + // Daemon didn't exit cleanly β€” remove leftovers, matching the CLI. + os.Remove(sessionStopFile()) + os.Remove(sessionPIDFile()) + os.Remove(peersFile()) + s.emit() + return "Session did not stop cleanly; cleaned up.", nil +} + +// SelectFile opens a native file picker and returns the chosen path (empty if the +// user cancelled). Cancellation is not an error β€” it returns "" so the frontend +// simply keeps the previous selection and nothing is logged. +func (s *TrayService) SelectFile() (string, error) { + app := application.Get() + if app == nil { + return "", fmt.Errorf("application not ready") + } + path, err := app.Dialog.OpenFile().CanChooseFiles(true).SetTitle("Select a file to send").PromptForSingleSelection() + if err != nil { + return "", nil // user dismissed the dialog + } + return path, nil +} + +// SendFile runs `blindspot send ` and returns the CLI's final +// line. Blocks for the duration of the transfer. +func (s *TrayService) SendFile(peerIP, filePath string) (string, error) { + peerIP = strings.TrimSpace(peerIP) + filePath = strings.TrimSpace(filePath) + if peerIP == "" || filePath == "" { + return "", fmt.Errorf("a peer IP and a file are both required") + } + if _, err := os.Stat(filePath); err != nil { + return "", fmt.Errorf("file not found: %s", filePath) + } + + s.setBusy(true) + s.setTransfer(fmt.Sprintf("Sending %s to %s…", filepath.Base(filePath), peerIP)) + defer s.setBusy(false) + + out, err := s.runCLI("send", peerIP, filePath) + last := lastLine(out) + if err != nil { + if last != "" { + s.setTransfer(last) + return "", fmt.Errorf("%s", last) + } + s.setTransfer("Send failed.") + return "", err + } + s.setTransfer(last) + return last, nil +} + +// StartReceive launches `blindspot receive` in the background so the tray can keep +// serving while it waits for an incoming file. Progress lines are streamed into the +// transfer status and pushed to the frontend. +func (s *TrayService) StartReceive(here bool) error { + s.mu.Lock() + if s.recvCmd != nil { + s.mu.Unlock() + return fmt.Errorf("already waiting to receive") + } + + args := []string{"receive"} + if here { + args = append(args, "--here") + } + cmd := exec.Command(selfExe(), args...) + hideConsole(cmd) + stdout, err := cmd.StdoutPipe() + if err != nil { + s.mu.Unlock() + return err + } + cmd.Stderr = cmd.Stdout + if err := cmd.Start(); err != nil { + s.mu.Unlock() + return err + } + s.recvCmd = cmd + s.transfer = "Waiting for a file…" + s.mu.Unlock() + s.emit() + + // Stream the CLI output. It emits progress with carriage returns, so split on + // both \r and \n and surface the most recent non-empty line. + go func() { + scanner := bufio.NewScanner(stdout) + scanner.Split(scanLinesOrCR) + for scanner.Scan() { + if line := strings.TrimSpace(scanner.Text()); line != "" { + s.setTransfer(line) + } + } + _ = scanner.Err() + cmd.Wait() + s.mu.Lock() + s.recvCmd = nil + if strings.HasPrefix(s.transfer, "Waiting") { + s.transfer = "Stopped waiting." + } + s.mu.Unlock() + s.emit() + }() + return nil +} + +// CancelReceive kills a pending `receive` process, if one is running. +func (s *TrayService) CancelReceive() error { + s.mu.Lock() + cmd := s.recvCmd + s.mu.Unlock() + if cmd == nil || cmd.Process == nil { + return nil + } + return cmd.Process.Kill() +} + +// Version returns the blindspot version string. +func (s *TrayService) Version() string { + out, err := s.runCLI("version") + if err != nil || out == "" { + return "blindspot" + } + return lastLine(out) +} + +// runCLI invokes a blindspot subcommand on this same binary and returns its +// combined, trimmed output. +func (s *TrayService) runCLI(args ...string) (string, error) { + cmd := exec.Command(selfExe(), args...) + hideConsole(cmd) + out, err := cmd.CombinedOutput() + return strings.TrimSpace(string(out)), err +} + +func lastLine(s string) string { + lines := strings.Split(strings.TrimSpace(s), "\n") + for i := len(lines) - 1; i >= 0; i-- { + if l := strings.TrimSpace(lines[i]); l != "" { + return l + } + } + return "" +} + +// scanLinesOrCR is a bufio.SplitFunc that breaks tokens on either newline or +// carriage return, so progress-bar updates (which use \r) surface as they arrive. +func scanLinesOrCR(data []byte, atEOF bool) (advance int, token []byte, err error) { + if atEOF && len(data) == 0 { + return 0, nil, nil + } + for i, b := range data { + if b == '\n' || b == '\r' { + return i + 1, data[:i], nil + } + } + if atEOF { + return len(data), data, nil + } + return 0, nil, nil +} diff --git a/main.go b/main.go index 6a1bf77..9a194c2 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + _ "embed" "os" "runtime" @@ -9,6 +10,18 @@ import ( "github.com/neozmmv/blindspot/internal/platform" ) +// appIcon is embedded here (not in internal/gui) because go:embed can only reach +// files at or below the embedding package's directory β€” it can't use ".." to climb +// out. The repo root sits above public/, so it can embed the icon and hand the +// bytes to the GUI, avoiding a duplicate copy inside internal/gui. +// +// It must be a PNG, not an .ico: Wails' tray SetIcon feeds the bytes straight to +// CreateIconFromResourceEx, which wants a single image β€” an .ico container's +// directory header makes it render blank. +// +//go:embed public/BLINDSPOT_tray.png +var appIcon []byte + func main() { // Explicit CLI command (e.g. "blindspot connect ...", "blindspot list") if len(os.Args) > 1 { @@ -30,5 +43,5 @@ func main() { } // Double-click (Windows) or plain "./blindspot" launched fresh (Linux) -> tray - gui.Run() + gui.Run(appIcon) } diff --git a/public/BLINDSPOT.ico b/public/BLINDSPOT.ico new file mode 100644 index 0000000000000000000000000000000000000000..09ce9730cf51b281e55c52fe845ba76a5455802c GIT binary patch literal 26169 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 IAnS<#10M2cLI3~& literal 0 HcmV?d00001 From 0480e4ca57c51bd6ee82b5506b117fce0fd8f9e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enzo=20Guti=C3=A9rrez=20Pereira?= Date: Sun, 12 Jul 2026 22:49:57 -0300 Subject: [PATCH 6/7] first initial version of tray --- .github/workflows/new-release.yml | 5 +- Makefile | 10 +- cmd/tray/main.go | 11 + cmd/update_windows.go | 51 +- .../neozmmv/blindspot/internal/gui/models.js | 12 +- .../blindspot/internal/gui/trayservice.js | 3 +- .../gui/frontend/public/blindspot-logo.png | Bin 0 -> 6723 bytes internal/gui/frontend/public/style.css | 461 +++++++++++------- internal/gui/frontend/src/App.tsx | 261 +++++----- internal/gui/icon.png | Bin 0 -> 26147 bytes internal/gui/main.go | 39 +- internal/gui/trayservice.go | 44 +- internal/platform/console_other.go | 6 - internal/platform/console_windows.go | 36 -- main.go | 41 +- scripts/install.ps1 | 37 +- 16 files changed, 595 insertions(+), 422 deletions(-) create mode 100644 cmd/tray/main.go create mode 100644 internal/gui/frontend/public/blindspot-logo.png create mode 100644 internal/gui/icon.png delete mode 100644 internal/platform/console_other.go delete mode 100644 internal/platform/console_windows.go diff --git a/.github/workflows/new-release.yml b/.github/workflows/new-release.yml index b3bded5..db5b1dd 100644 --- a/.github/workflows/new-release.yml +++ b/.github/workflows/new-release.yml @@ -26,9 +26,10 @@ jobs: GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/neozmmv/blindspot/cmd.Version=${{ github.ref_name }}" -o blindspot-linux-amd64 . GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/neozmmv/blindspot/cmd.Version=${{ github.ref_name }}" -o blindspot-linux-arm64 . GOOS=windows GOARCH=amd64 go build -ldflags "-X github.com/neozmmv/blindspot/cmd.Version=${{ github.ref_name }}" -o blindspot.exe . + GOOS=windows GOARCH=amd64 go build -ldflags "-H windowsgui -X github.com/neozmmv/blindspot/cmd.Version=${{ github.ref_name }}" -o blindspot-tray.exe ./cmd/tray GOOS=darwin GOARCH=amd64 go build -ldflags "-X github.com/neozmmv/blindspot/cmd.Version=${{ github.ref_name }}" -o blindspot-darwin-amd64 . GOOS=darwin GOARCH=arm64 go build -ldflags "-X github.com/neozmmv/blindspot/cmd.Version=${{ github.ref_name }}" -o blindspot-darwin-arm64 . - + - name: Upload Artifacts uses: actions/upload-artifact@v4 with: @@ -37,6 +38,7 @@ jobs: blindspot-linux-amd64 blindspot-linux-arm64 blindspot.exe + blindspot-tray.exe blindspot-darwin-amd64 blindspot-darwin-arm64 @@ -58,5 +60,6 @@ jobs: blindspot-linux-amd64 blindspot-linux-arm64 blindspot.exe + blindspot-tray.exe blindspot-darwin-amd64 blindspot-darwin-arm64 \ No newline at end of file diff --git a/Makefile b/Makefile index 82a3c6f..123a93c 100644 --- a/Makefile +++ b/Makefile @@ -4,11 +4,13 @@ VERSION=$(shell git describe --tags --abbrev=0) .PHONY: build build-win build-linux -# -H windowsgui builds a GUI-subsystem binary so double-clicking launches the tray -# without a console window. CLI use still works: main.go calls AttachToParentConsole -# when launched from an existing terminal. +# Two Windows binaries: the console-subsystem CLI (blindspot.exe) behaves like a +# normal command-line tool from a terminal, and the GUI-subsystem tray +# (blindspot-tray.exe, -H windowsgui) launches without ever opening a console. The +# tray shells out to the CLI sitting next to it, so ship them in the same folder. build-win: - GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui -X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY).exe . + GOOS=windows GOARCH=amd64 go build -ldflags="-X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY).exe . + GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui -X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY)-tray.exe ./cmd/tray build-linux: GOOS=linux GOARCH=amd64 go build -ldflags="-X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY)-linux-amd64 . diff --git a/cmd/tray/main.go b/cmd/tray/main.go new file mode 100644 index 0000000..d65d20f --- /dev/null +++ b/cmd/tray/main.go @@ -0,0 +1,11 @@ +// Command blindspot-tray is the system-tray GUI for Blindspot. It is built as a +// GUI-subsystem binary (-H windowsgui) so launching it never opens a console +// window. It drives the P2P VPN by shelling out to the sibling blindspot CLI, so +// the two binaries ship side by side. +package main + +import "github.com/neozmmv/blindspot/internal/gui" + +func main() { + gui.Run() +} diff --git a/cmd/update_windows.go b/cmd/update_windows.go index 8797546..cd6b9b7 100644 --- a/cmd/update_windows.go +++ b/cmd/update_windows.go @@ -4,30 +4,47 @@ import ( "fmt" "os" "os/exec" + "path/filepath" "github.com/spf13/cobra" ) -// batch workaround to replace the current executable on next run +// pwshScript downloads the latest CLI and tray binaries, then hands off to a small +// batch file that (after this process exits) replaces both in place. The tray is +// stopped before its exe is swapped and restarted afterwards if it had been running. +// Destinations are passed in via BS_CLI_DEST / BS_TRAY_DEST so the update lands +// wherever blindspot is actually installed, keeping the two binaries side by side. var pwshScript = ` $ErrorActionPreference = "Stop" -$Url = "https://github.com/neozmmv/blindspot/releases/latest/download/blindspot.exe" -$Dest = "$env:LOCALAPPDATA\Microsoft\WindowsApps\blindspot.exe" -$Tmp = "$env:TEMP\blindspot_update.exe" +$Base = "https://github.com/neozmmv/blindspot/releases/latest/download" +$CliDest = $env:BS_CLI_DEST +$TrayDest = $env:BS_TRAY_DEST +$TmpCli = "$env:TEMP\blindspot_update.exe" +$TmpTray = "$env:TEMP\blindspot_tray_update.exe" -Write-Host "Downloading latest blindspot..." -Invoke-WebRequest -Uri $Url -OutFile $Tmp +Write-Host "Downloading latest Blindspot (CLI + tray)..." +Invoke-WebRequest -Uri "$Base/blindspot.exe" -OutFile $TmpCli +Invoke-WebRequest -Uri "$Base/blindspot-tray.exe" -OutFile $TmpTray + +# Restart the tray afterwards only if it is currently running. +$restartLine = "" +if (Get-Process blindspot-tray -ErrorAction SilentlyContinue) { + $restartLine = "start """" ""$TrayDest""" +} $batch = "$env:TEMP\blindspot_update.bat" @" @echo off timeout /t 1 /nobreak >nul -move /y "$Tmp" "$Dest" +taskkill /f /im blindspot-tray.exe >nul 2>&1 +move /y "$TmpCli" "$CliDest" +move /y "$TmpTray" "$TrayDest" +$restartLine del "%~f0" "@ | Out-File -FilePath $batch -Encoding ascii Start-Process -FilePath $batch -WindowStyle Hidden -Write-Host "Update downloaded. Applying on next run." +Write-Host "Update downloaded. Applying now - the tray restarts if it was running." ` func init() { @@ -36,14 +53,24 @@ func init() { var updateWindowsCmd = &cobra.Command{ Use: "update", - Short: "Update blindspot", + Short: "Update blindspot (CLI and tray)", Run: func(cmd *cobra.Command, args []string) { + exe, err := os.Executable() + if err != nil { + fmt.Fprintf(os.Stderr, "Could not locate the blindspot executable: %v\n", err) + os.Exit(1) + } + dir := filepath.Dir(exe) + fmt.Println("Starting blindspot update...") - scriptCmd := exec.Command("powershell", "-Command", pwshScript) + scriptCmd := exec.Command("powershell", "-NoProfile", "-Command", pwshScript) + scriptCmd.Env = append(os.Environ(), + "BS_CLI_DEST="+filepath.Join(dir, "blindspot.exe"), + "BS_TRAY_DEST="+filepath.Join(dir, "blindspot-tray.exe"), + ) scriptCmd.Stdout = os.Stdout scriptCmd.Stderr = os.Stderr - err := scriptCmd.Run() - if err != nil { + if err := scriptCmd.Run(); err != nil { fmt.Fprintf(os.Stderr, "Error occurred while updating blindspot: %v\n", err) os.Exit(1) } diff --git a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/models.js b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/models.js index b7f2bb2..2569f50 100644 --- a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/models.js +++ b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/models.js @@ -68,6 +68,14 @@ export class Status { */ this["myIP"] = ""; } + if (!("session" in $$source)) { + /** + * active session name, if this tray started it + * @member + * @type {string} + */ + this["session"] = ""; + } if (!("peers" in $$source)) { /** * @member @@ -109,10 +117,10 @@ export class Status { * @returns {Status} */ static createFrom($$source = {}) { - const $$createField2_0 = $$createType1; + const $$createField3_0 = $$createType1; let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; if ("peers" in $$parsedSource) { - $$parsedSource["peers"] = $$createField2_0($$parsedSource["peers"]); + $$parsedSource["peers"] = $$createField3_0($$parsedSource["peers"]); } return new Status(/** @type {Partial} */($$parsedSource)); } diff --git a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/trayservice.js b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/trayservice.js index 43e54af..c5a1c1a 100644 --- a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/trayservice.js +++ b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/trayservice.js @@ -70,7 +70,8 @@ export function MyIP() { /** * SelectFile opens a native file picker and returns the chosen path (empty if the - * user cancelled). + * user cancelled). Cancellation is not an error β€” it returns "" so the frontend + * simply keeps the previous selection and nothing is logged. * @returns {$CancellablePromise} */ export function SelectFile() { diff --git a/internal/gui/frontend/public/blindspot-logo.png b/internal/gui/frontend/public/blindspot-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d416f72a8a74f656e98e2d821a88a61eec424620 GIT binary patch literal 6723 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 X@^x?bk!%) literal 0 HcmV?d00001 diff --git a/internal/gui/frontend/public/style.css b/internal/gui/frontend/public/style.css index b9a624c..dd911dd 100644 --- a/internal/gui/frontend/public/style.css +++ b/internal/gui/frontend/public/style.css @@ -1,262 +1,375 @@ :root { - --bg: #06070f; - --panel: rgba(255, 255, 255, 0.04); - --panel-border: rgba(255, 255, 255, 0.08); - --text: #e7e9f3; - --muted: #8b90a6; - --accent: #6d8bff; - --accent-press: #5a76ee; - --success: #35d07f; - --danger: #ff5c6c; - --field: rgba(255, 255, 255, 0.05); - --field-border: rgba(255, 255, 255, 0.12); - font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + --bg: #0a0b0d; + --surface: #131519; + --surface-2: #1a1d23; + --border: rgba(255, 255, 255, 0.08); + --border-strong: rgba(255, 255, 255, 0.14); + + --text: #f4f5f7; + --text-2: #9aa1ac; + --text-3: #656c78; + + --blue: #3b82f6; + --blue-hover: #5896f8; + --blue-press: #2f6fe0; + --blue-soft: rgba(59, 130, 246, 0.12); + --blue-ring: rgba(59, 130, 246, 0.32); + + --green: #22c55e; + --danger: #ef4444; + --danger-soft: rgba(239, 68, 68, 0.1); + + --radius: 12px; + --radius-sm: 9px; + + font-family: 'Segoe UI Variable Text', 'Segoe UI', -apple-system, BlinkMacSystemFont, system-ui, 'Helvetica Neue', sans-serif; } * { box-sizing: border-box; } html, body { margin: 0; - padding: 0; height: 100%; + overflow-x: hidden; background: var(--bg); color: var(--text); + font-size: 14px; + line-height: 1.45; -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; } - #root { height: 100%; } .app { display: flex; flex-direction: column; height: 100vh; - background: - radial-gradient(120% 80% at 100% 0%, rgba(109, 139, 255, 0.12), transparent 55%), - radial-gradient(90% 60% at 0% 100%, rgba(53, 208, 127, 0.08), transparent 60%), - var(--bg); + background: var(--bg); } -/* ---- top bar ---- */ +button { font-family: inherit; } + +/* ── top bar ─────────────────────────────────────────── */ .topbar { display: flex; align-items: center; justify-content: space-between; - padding: 14px 16px 10px; + padding: 15px 18px; + border-bottom: 1px solid var(--border); --wails-draggable: drag; } - -.brand { display: flex; align-items: center; gap: 8px; } - -.dot-logo { - width: 12px; - height: 12px; - border-radius: 50%; - background: radial-gradient(circle at 30% 30%, #fff, var(--accent) 70%); - box-shadow: 0 0 12px rgba(109, 139, 255, 0.7); -} - -.brand-name { - font-weight: 600; - letter-spacing: 0.02em; - font-size: 15px; +.brand { display: flex; align-items: center; gap: 10px; } +.logo { + width: 30px; + height: 30px; + object-fit: contain; + display: block; } +.brand-name { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; } .pill { display: inline-flex; align-items: center; - gap: 6px; - font-size: 12px; - font-weight: 600; - padding: 5px 10px; + gap: 7px; + padding: 5px 11px 5px 9px; border-radius: 999px; - border: 1px solid var(--panel-border); + font-size: 12px; + font-weight: 500; + border: 1px solid var(--border); + background: var(--surface); } - .pill-dot { width: 7px; height: 7px; border-radius: 50%; } -.pill-on { color: var(--success); background: rgba(53, 208, 127, 0.1); } -.pill-on .pill-dot { background: var(--success); box-shadow: 0 0 8px var(--success); } -.pill-off { color: var(--muted); background: rgba(255, 255, 255, 0.04); } -.pill-off .pill-dot { background: var(--muted); } +.pill-on { color: #d6f5e1; } +.pill-on .pill-dot { background: var(--green); box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18); } +.pill-off { color: var(--text-2); } +.pill-off .pill-dot { background: var(--text-3); } -/* ---- body ---- */ -.body { +/* ── content ─────────────────────────────────────────── */ +.content { flex: 1; overflow-y: auto; - padding: 6px 16px 16px; + padding: 18px; display: flex; flex-direction: column; - gap: 12px; + gap: 16px; } .card { - background: var(--panel); - border: 1px solid var(--panel-border); - border-radius: 14px; - padding: 14px; - display: flex; - flex-direction: column; - gap: 10px; + background: var(--surface); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 16px; } -.label { - font-size: 11px; - text-transform: uppercase; - letter-spacing: 0.08em; - color: var(--muted); +/* ── connected: summary ──────────────────────────────── */ +.summary-label { + font-size: 12px; + font-weight: 500; + color: var(--text-3); + margin-bottom: 8px; +} +.ip-value { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + gap: 12px; + padding: 0; + background: none; + border: none; + color: inherit; + cursor: pointer; + text-align: left; +} +.ip-text { + font-size: 26px; font-weight: 600; + letter-spacing: -0.02em; + font-variant-numeric: tabular-nums; +} +.copy-btn { + display: inline-flex; + align-items: center; + gap: 5px; + flex-shrink: 0; + font-size: 12px; + font-weight: 500; + color: var(--text-2); + padding: 5px 10px; + border: 1px solid var(--border); + border-radius: 7px; + transition: color 0.15s, border-color 0.15s, background 0.15s; } +.ip-value:hover .copy-btn { color: var(--text); border-color: var(--border-strong); background: var(--surface-2); } -.sublabel { +.summary-meta { + display: flex; + align-items: center; + gap: 9px; + margin-top: 12px; +} +.chip { font-size: 12px; - font-weight: 600; + font-weight: 500; color: var(--text); - margin-bottom: 6px; + padding: 3px 9px; + border-radius: 6px; + background: var(--surface-2); + border: 1px solid var(--border); } +.meta-dim { font-size: 12.5px; color: var(--text-2); } -.row-between { display: flex; align-items: center; justify-content: space-between; gap: 10px; } +/* ── peers ───────────────────────────────────────────── */ +.peers-block { display: flex; flex-direction: column; gap: 10px; } +.section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; } +.section-title h2 { margin: 0; font-size: 13px; font-weight: 600; color: var(--text); } +.hint-line { font-size: 11.5px; color: var(--text-3); } -.myip { - font-family: 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace; - font-size: 20px; - font-weight: 600; - margin-top: 4px; -} - -/* ---- peers ---- */ -.peers { display: flex; flex-direction: column; gap: 6px; } -.count { - display: inline-block; - min-width: 18px; - text-align: center; - padding: 0 6px; - margin-left: 4px; - border-radius: 999px; - background: rgba(109, 139, 255, 0.18); - color: var(--accent); -} -.empty { color: var(--muted); font-size: 13px; padding: 4px 0; } -.peer-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; } +.peer-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; } .peer { + position: relative; display: flex; - justify-content: space-between; align-items: center; - gap: 8px; - padding: 8px 10px; + gap: 12px; + padding: 12px; + background: var(--surface); + border: 1px solid var(--border); + border-radius: var(--radius-sm); + cursor: pointer; + transition: border-color 0.15s, background 0.15s; +} +.peer:hover { border-color: var(--border-strong); background: var(--surface-2); } +.peer-icon { + display: grid; + place-items: center; + width: 36px; + height: 36px; + flex-shrink: 0; border-radius: 8px; - background: rgba(255, 255, 255, 0.03); - font-size: 13px; + color: var(--text-2); + background: var(--surface-2); + border: 1px solid var(--border); } -.peer-ip { font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 600; } -.peer-addr { color: var(--muted); font-size: 12px; } - -/* ---- inputs ---- */ -.input { - width: 100%; - padding: 10px 12px; - border-radius: 10px; - border: 1px solid var(--field-border); - background: var(--field); - color: var(--text); +.peer:hover .peer-icon { color: var(--blue-hover); } +.peer-info { display: flex; flex-direction: column; min-width: 0; flex: 1; } +.peer-name { font-size: 14px; - outline: none; - transition: border-color 0.15s, box-shadow 0.15s; + font-weight: 600; + font-variant-numeric: tabular-nums; + letter-spacing: -0.01em; } -.input::placeholder { color: var(--muted); } -.input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(109, 139, 255, 0.18); } +.peer-addr { + font-size: 12px; + color: var(--text-2); + font-variant-numeric: tabular-nums; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.peer-action { + display: grid; + place-items: center; + flex-shrink: 0; + color: var(--text-3); + opacity: 0; + transition: opacity 0.15s, color 0.15s; +} +.peer:hover .peer-action { opacity: 1; color: var(--blue-hover); } -.check { - display: flex; +/* Drop overlay β€” Wails adds .file-drop-target-active while an OS drag hovers. */ +.peer-drop { + position: absolute; + inset: 0; + display: none; align-items: center; + justify-content: center; gap: 8px; - font-size: 12.5px; - color: var(--muted); - cursor: pointer; + border-radius: var(--radius-sm); + background: rgba(20, 30, 55, 0.86); + color: var(--blue-hover); + font-size: 13px; + font-weight: 600; } -.check input { accent-color: var(--accent); width: 15px; height: 15px; } +.peer.file-drop-target-active { border-color: var(--blue); background: var(--blue-soft); } +.peer.file-drop-target-active .peer-drop { display: flex; } -.subgroup { - padding-top: 6px; - border-top: 1px solid var(--panel-border); - display: flex; - flex-direction: column; - gap: 8px; +/* ── empty ───────────────────────────────────────────── */ +.empty { + border: 1px dashed var(--border-strong); + border-radius: var(--radius-sm); + padding: 22px 16px; + text-align: center; } -.subgroup:first-of-type { border-top: none; padding-top: 0; } +.empty-title { font-size: 13.5px; font-weight: 600; color: var(--text); } +.empty-body { margin: 5px 0 0; font-size: 12.5px; color: var(--text-2); line-height: 1.5; } -.file-row { display: flex; align-items: center; gap: 10px; } -.file-name { - font-size: 12.5px; - color: var(--muted); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; +/* ── transfer ────────────────────────────────────────── */ +.transfer { + display: flex; + align-items: center; + gap: 10px; + padding: 11px 13px; + border: 1px solid var(--blue-ring); + border-radius: var(--radius-sm); + background: var(--blue-soft); +} +.transfer-spinner { + width: 14px; height: 14px; flex-shrink: 0; + border: 2px solid rgba(88, 150, 248, 0.35); + border-top-color: var(--blue-hover); + border-radius: 50%; + animation: spin 0.7s linear infinite; } +.transfer-text { font-size: 12.5px; color: var(--text); font-variant-numeric: tabular-nums; word-break: break-word; } +@keyframes spin { to { transform: rotate(360deg); } } -/* ---- buttons ---- */ +/* ── footer actions ──────────────────────────────────── */ +.footer { display: flex; gap: 10px; margin-top: auto; padding-top: 4px; } .btn { - appearance: none; - border: 1px solid var(--field-border); - background: var(--field); - color: var(--text); - font-size: 13.5px; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 7px; + padding: 10px 14px; + border-radius: var(--radius-sm); + font-size: 13px; font-weight: 600; - padding: 9px 14px; - border-radius: 10px; cursor: pointer; - transition: background 0.15s, border-color 0.15s, transform 0.05s, opacity 0.15s; + border: 1px solid transparent; + transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.04s; } -.btn:hover { background: rgba(255, 255, 255, 0.09); } .btn:active { transform: translateY(1px); } -.btn:disabled { opacity: 0.45; cursor: not-allowed; } -.btn.full { width: 100%; } +.btn:disabled { opacity: 0.5; cursor: not-allowed; } +.btn-full { width: 100%; } -.btn.primary { background: var(--accent); border-color: transparent; color: #0a0c18; } -.btn.primary:hover { background: var(--accent-press); } +.btn-primary { background: var(--blue); color: #fff; box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12) inset, 0 4px 14px rgba(47, 111, 224, 0.28); } +.btn-primary:hover:not(:disabled) { background: var(--blue-hover); } +.btn-primary:active { background: var(--blue-press); } -.btn.danger { color: var(--danger); border-color: rgba(255, 92, 108, 0.35); background: rgba(255, 92, 108, 0.08); } -.btn.danger:hover { background: rgba(255, 92, 108, 0.16); } +.btn-secondary { flex: 1; background: var(--surface); border-color: var(--border); color: var(--text); } +.btn-secondary:hover { background: var(--surface-2); border-color: var(--border-strong); } -.btn.ghost { background: transparent; } +.btn-danger { flex: 1; background: transparent; border-color: var(--border); color: var(--text-2); } +.btn-danger:hover:not(:disabled) { color: var(--danger); border-color: rgba(239, 68, 68, 0.4); background: var(--danger-soft); } -.hint { font-size: 11.5px; color: var(--muted); margin: 2px 0 0; line-height: 1.4; } +.live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); } -.transfer { - margin-top: 2px; - padding: 9px 11px; - border-radius: 9px; - background: rgba(109, 139, 255, 0.1); - border: 1px solid rgba(109, 139, 255, 0.2); - font-size: 12.5px; +/* ── connect (disconnected) ──────────────────────────── */ +.connect-card { display: flex; flex-direction: column; } +.connect-title { margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -0.02em; } +.connect-sub { margin: 5px 0 18px; font-size: 13px; color: var(--text-2); } + +.field-label { + font-size: 12px; + font-weight: 500; + color: var(--text-2); + margin-bottom: 7px; +} +.field-label:not(:first-of-type) { margin-top: 14px; } +.optional { color: var(--text-3); font-weight: 400; } + +.input { + width: 100%; + padding: 10px 12px; + border-radius: var(--radius-sm); + border: 1px solid var(--border-strong); + background: var(--bg); color: var(--text); - word-break: break-word; + font-size: 13.5px; + outline: none; + transition: border-color 0.15s, box-shadow 0.15s; } +.input::placeholder { color: var(--text-3); } +.input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); } -/* ---- notice toast ---- */ +.checkbox { + display: flex; + align-items: center; + gap: 9px; + margin: 16px 0 4px; + font-size: 13px; + color: var(--text-2); + cursor: pointer; + user-select: none; +} +.checkbox input { width: 16px; height: 16px; accent-color: var(--blue); } + +.btn-primary.btn-full { margin-top: 16px; padding: 11px; } +.connect-note { margin: 12px 0 0; font-size: 11.5px; line-height: 1.5; color: var(--text-3); } + +.device-line { + display: flex; + align-items: center; + justify-content: space-between; + margin-top: auto; + padding: 12px 4px 0; + border-top: 1px solid var(--border); +} +.device-k { font-size: 12.5px; color: var(--text-3); } +.device-v { font-size: 13px; font-weight: 500; color: var(--text-2); font-variant-numeric: tabular-nums; } + +/* ── notice ──────────────────────────────────────────── */ .notice { position: fixed; - left: 16px; - right: 16px; - bottom: 40px; - padding: 11px 14px; - border-radius: 10px; - background: rgba(20, 22, 34, 0.96); - border: 1px solid var(--panel-border); - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); - font-size: 13px; - line-height: 1.4; + left: 16px; right: 16px; bottom: 16px; + padding: 12px 14px; + border-radius: var(--radius-sm); + background: #16191e; + border: 1px solid var(--border-strong); + box-shadow: 0 12px 34px rgba(0, 0, 0, 0.6); + font-size: 12.5px; + line-height: 1.45; + color: var(--text); word-break: break-word; animation: rise 0.18s ease-out; } -@keyframes rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } } - -/* ---- footer ---- */ -.footer { - padding: 8px 16px; - border-top: 1px solid var(--panel-border); - font-size: 11px; - color: var(--muted); - text-align: center; -} +@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } } ::-webkit-scrollbar { width: 8px; } -::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); border-radius: 8px; } +::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.1); border-radius: 8px; } +::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.16); } +::-webkit-scrollbar-track { background: transparent; } + +@media (prefers-reduced-motion: reduce) { + * { animation: none !important; transition: none !important; } +} diff --git a/internal/gui/frontend/src/App.tsx b/internal/gui/frontend/src/App.tsx index 0014dee..bf476e1 100644 --- a/internal/gui/frontend/src/App.tsx +++ b/internal/gui/frontend/src/App.tsx @@ -10,6 +10,7 @@ interface Peer { interface Status { connected: boolean myIP: string + session: string peers: Peer[] busy: boolean receiving: boolean @@ -19,33 +20,51 @@ interface Status { const emptyStatus: Status = { connected: false, myIP: '', + session: '', peers: [], busy: false, receiving: false, transfer: '', } +/* Minimal line icons, sized by the surrounding font. */ +const stroke = { + fill: 'none', + stroke: 'currentColor', + strokeWidth: 1.75, + strokeLinecap: 'round' as const, + strokeLinejoin: 'round' as const, +} +const IconCopy = () => ( + +) +const IconCheck = () => ( + +) +const IconMonitor = () => ( + +) +const IconSend = () => ( + +) +const IconDownload = () => ( + +) +const IconPower = () => ( + +) + function App() { const [status, setStatus] = useState(emptyStatus) - const [version, setVersion] = useState('') const [notice, setNotice] = useState('') - - // connect form const [session, setSession] = useState('') const [password, setPassword] = useState('') const [isNew, setIsNew] = useState(false) - - // send form - const [peerIP, setPeerIP] = useState('') - const [filePath, setFilePath] = useState('') - const [saveHere, setSaveHere] = useState(false) - const [copied, setCopied] = useState(false) const refresh = useCallback(async () => { try { - const s = await TrayService.GetStatus() - setStatus(s as Status) + setStatus((await TrayService.GetStatus()) as Status) } catch (e) { console.error(e) } @@ -53,7 +72,6 @@ function App() { useEffect(() => { refresh() - TrayService.Version().then(setVersion).catch(() => {}) const off = Events.On('status', (ev: any) => { if (ev?.data) setStatus(ev.data as Status) }) @@ -78,12 +96,8 @@ function App() { } const doDisconnect = async () => { - try { - const msg = await TrayService.Disconnect() - flash(msg) - } catch (e: any) { - flash(String(e?.message ?? e)) - } + try { flash(await TrayService.Disconnect()) } + catch (e: any) { flash(String(e?.message ?? e)) } } const copyIP = async () => { @@ -91,166 +105,159 @@ function App() { try { await navigator.clipboard.writeText(status.myIP) setCopied(true) - window.setTimeout(() => setCopied(false), 1200) - } catch { /* clipboard blocked */ } + window.setTimeout(() => setCopied(false), 1400) + } catch { /* clipboard unavailable */ } } - const chooseFile = async () => { + const sendTo = async (peerIP: string) => { try { const path = await TrayService.SelectFile() - if (path) setFilePath(path) - } catch (e: any) { - flash(String(e?.message ?? e)) - } - } - - const doSend = async () => { - try { - const msg = await TrayService.SendFile(peerIP, filePath) - flash(msg) + if (path) await TrayService.SendFile(peerIP, path) } catch (e: any) { flash(String(e?.message ?? e)) } } const doReceive = async () => { - try { - await TrayService.StartReceive(saveHere) - } catch (e: any) { - flash(String(e?.message ?? e)) - } + try { await TrayService.StartReceive(false) } + catch (e: any) { flash(String(e?.message ?? e)) } } - - const cancelReceive = async () => { + const stopReceive = async () => { try { await TrayService.CancelReceive() } catch { /* ignore */ } } - const fileName = filePath ? filePath.replace(/^.*[\\/]/, '') : '' - return (
-
- - {status.connected ? 'Connected' : 'Offline'} + + {status.connected ? 'Connected' : 'Disconnected'}
-
- {status.connected ? ( -
-
-
-
Your virtual IP
-
{status.myIP || 'β€”'}
-
- + {status.connected ? ( +
+
+
Your device
+ +
+ {status.session && {status.session}} + {status.peers.length} {status.peers.length === 1 ? 'peer' : 'peers'} connected
+
-
-
- Peers {status.peers.length} +
+
+

Peers

+ Drag a file onto a peer to send it +
+ + {status.peers.length === 0 ? ( +
+
No peers connected
+

Devices that join this network will appear here, ready to receive files.

- {status.peers.length === 0 ? ( -
No peers connected yet.
- ) : ( -
    - {status.peers.map((p) => ( -
  • - {p.virtualIP} + ) : ( +
      + {status.peers.map((p) => ( +
    • sendTo(p.virtualIP)} + title={`Send a file to ${p.virtualIP}`} + > + + + {p.virtualIP} {p.publicAddr} -
    • - ))} -
    - )} + + + Drop to send +
  • + ))} +
+ )} +
+ + {status.transfer && ( +
+ + {status.transfer}
+ )} - + ) : ( + + )} + -
- ) : ( -
-
Join or create a session
+
+ + ) : ( +
+
+

Connect to a network

+

Join a session or create a new encrypted network.

+ + setSession(e.target.value)} + onKeyDown={(e) => { if (e.key === 'Enter' && session) doConnect() }} autoComplete="off" + autoFocus /> + + setPassword(e.target.value)} + onKeyDown={(e) => { if (e.key === 'Enter' && session) doConnect() }} autoComplete="off" /> -
- )} - -
-
File transfer
-
-
Send
- setPeerIP(e.target.value)} - autoComplete="off" - /> -
- - {fileName || 'No file selected'} -
- -
- -
-
Receive
- - {status.receiving ? ( - - ) : ( - - )} +
+ Your device IP + {status.myIP || 'β€”'}
+
+ )} - {status.transfer &&
{status.transfer}
} - - - - {notice &&
{notice}
} - -
- {version || 'blindspot'} -
+ {notice &&
{notice}
} ) } diff --git a/internal/gui/icon.png b/internal/gui/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8090e88eb69dfbfc8652b7e4487dcd7cd0d3cd GIT binary patch literal 26147 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 IAnS<#10M2cLI3~& literal 0 HcmV?d00001 diff --git a/internal/gui/main.go b/internal/gui/main.go index a2097ef..d45b729 100644 --- a/internal/gui/main.go +++ b/internal/gui/main.go @@ -14,15 +14,20 @@ import ( //go:embed all:frontend/dist var assets embed.FS +// trayIcon is the tray/menu-bar icon. It must be a PNG (Wails' Windows SetIcon feeds +// the bytes to CreateIconFromResourceEx, which rejects .ico containers). +// +//go:embed icon.png +var trayIcon []byte + func init() { // Payload emitted to the frontend whenever the session state changes. application.RegisterEvent[Status]("status") } -// Run launches the system-tray GUI. It is invoked by the root binary when -// blindspot is started with no CLI arguments (double-click / bare launch). icon is -// the application icon (PNG or ICO bytes), embedded by the root package. -func Run(icon []byte) { +// Run launches the system-tray GUI. It is the entry point of the blindspot-tray +// binary; the CLI lives in the separate console-subsystem blindspot binary. +func Run() { tray := &TrayService{} // Declared up front so the SingleInstance callback below (and the tray menu) can @@ -69,13 +74,35 @@ func Run(icon []byte) { DisableResize: true, HideOnEscape: true, HideOnFocusLost: true, - BackgroundColour: application.NewRGB(6, 7, 15), + BackgroundColour: application.NewRGB(0, 0, 0), URL: "/", + EnableFileDrop: true, Windows: application.WindowsWindow{ HiddenOnTaskbar: true, }, }) + // Drag-and-drop send: each peer card in the frontend is tagged + // data-file-drop-target + data-peer-ip. Dropping OS files onto one fires this + // hook with the target's attributes, so we send each file to that peer. + window.RegisterHook(events.Common.WindowFilesDropped, func(e *application.WindowEvent) { + ctx := e.Context() + files := ctx.DroppedFiles() + details := ctx.DropTargetDetails() + if details == nil || len(files) == 0 { + return + } + peerIP := details.Attributes["data-peer-ip"] + if peerIP == "" { + return + } + go func() { + for _, f := range files { + tray.SendFile(peerIP, f) + } + }() + }) + // Closing the tray window just hides it β€” the app keeps running in the tray, // unless the user picked Quit from the tray menu. window.RegisterHook(events.Common.WindowClosing, func(e *application.WindowEvent) { @@ -91,7 +118,7 @@ func Run(icon []byte) { if runtime.GOOS == "darwin" { systemTray.SetTemplateIcon(icons.SystrayMacTemplate) } else { - systemTray.SetIcon(icon) + systemTray.SetIcon(trayIcon) } systemTray.SetTooltip("Blindspot") diff --git a/internal/gui/trayservice.go b/internal/gui/trayservice.go index 8a7bbcf..ceac556 100644 --- a/internal/gui/trayservice.go +++ b/internal/gui/trayservice.go @@ -7,6 +7,7 @@ import ( "os" "os/exec" "path/filepath" + "runtime" "strconv" "strings" "sync" @@ -35,8 +36,9 @@ type Peer struct { type Status struct { Connected bool `json:"connected"` MyIP string `json:"myIP"` + Session string `json:"session"` // active session name, if this tray started it Peers []Peer `json:"peers"` - Busy bool `json:"busy"` // a connect/send is in flight + Busy bool `json:"busy"` // a connect/send is in flight Receiving bool `json:"receiving"` // a receive listener is running Transfer string `json:"transfer"` // latest file-transfer status line } @@ -50,17 +52,25 @@ type TrayService struct { mu sync.Mutex busy bool transfer string + session string // the session name this tray connected to, if any recvCmd *exec.Cmd // running `receive` process, if any } -// selfExe returns the path to the running blindspot binary so the tray can invoke -// its own CLI subcommands. -func selfExe() string { - exe, err := os.Executable() - if err != nil { - return "blindspot" +// cliExe returns the path to the blindspot CLI binary the tray shells out to. The +// tray ships alongside the CLI, so it prefers a blindspot(.exe) sitting next to +// itself and falls back to whatever is on PATH. +func cliExe() string { + name := "blindspot" + if runtime.GOOS == "windows" { + name = "blindspot.exe" + } + if exe, err := os.Executable(); err == nil { + sibling := filepath.Join(filepath.Dir(exe), name) + if _, err := os.Stat(sibling); err == nil { + return sibling + } } - return exe + return name // resolved via PATH } func (s *TrayService) sessionRunning() bool { @@ -120,11 +130,15 @@ func (s *TrayService) GetStatus() Status { peers = []Peer{} } s.mu.Lock() - busy, transfer, receiving := s.busy, s.transfer, s.recvCmd != nil + busy, transfer, receiving, session := s.busy, s.transfer, s.recvCmd != nil, s.session s.mu.Unlock() + if !connected { + session = "" // a stale session name shouldn't outlive the connection + } return Status{ Connected: connected, MyIP: s.MyIP(), + Session: session, Peers: peers, Busy: busy, Receiving: receiving, @@ -181,6 +195,11 @@ func (s *TrayService) Connect(session, password string, isNew bool) (string, err defer s.setBusy(false) out, err := s.runCLI(args...) + if err == nil && s.sessionRunning() { + s.mu.Lock() + s.session = session + s.mu.Unlock() + } s.emit() if err != nil { if out != "" { @@ -194,6 +213,9 @@ func (s *TrayService) Connect(session, password string, isNew bool) (string, err // Disconnect signals the running daemon to stop (the same mechanism as // `blindspot disconnect`) and waits briefly for it to tear down. func (s *TrayService) Disconnect() (string, error) { + s.mu.Lock() + s.session = "" + s.mu.Unlock() if !s.sessionRunning() { return "No active session.", nil } @@ -275,7 +297,7 @@ func (s *TrayService) StartReceive(here bool) error { if here { args = append(args, "--here") } - cmd := exec.Command(selfExe(), args...) + cmd := exec.Command(cliExe(), args...) hideConsole(cmd) stdout, err := cmd.StdoutPipe() if err != nil { @@ -338,7 +360,7 @@ func (s *TrayService) Version() string { // runCLI invokes a blindspot subcommand on this same binary and returns its // combined, trimmed output. func (s *TrayService) runCLI(args ...string) (string, error) { - cmd := exec.Command(selfExe(), args...) + cmd := exec.Command(cliExe(), args...) hideConsole(cmd) out, err := cmd.CombinedOutput() return strings.TrimSpace(string(out)), err diff --git a/internal/platform/console_other.go b/internal/platform/console_other.go deleted file mode 100644 index 13e31bb..0000000 --- a/internal/platform/console_other.go +++ /dev/null @@ -1,6 +0,0 @@ -//go:build !windows - -package platform - -func WasLaunchedFromTerminal() bool { return false } -func AttachToParentConsole() {} diff --git a/internal/platform/console_windows.go b/internal/platform/console_windows.go deleted file mode 100644 index 679321a..0000000 --- a/internal/platform/console_windows.go +++ /dev/null @@ -1,36 +0,0 @@ -//go:build windows - -package platform - -import ( - "syscall" - "unsafe" -) - -const attachParentProcess = ^uint32(0) - -var ( - kernel32 = syscall.NewLazyDLL("kernel32.dll") - procGetConsoleProcessList = kernel32.NewProc("GetConsoleProcessList") - procAttachConsole = kernel32.NewProc("AttachConsole") -) - -// WasLaunchedFromTerminal detects whether the process was started from an -// existing console (cmd/PowerShell) versus spawned fresh via double-click. -func WasLaunchedFromTerminal() bool { - procAttachConsole.Call(uintptr(attachParentProcess)) - - var pids [2]uint32 - ret, _, _ := procGetConsoleProcessList.Call( - uintptr(unsafe.Pointer(&pids[0])), - uintptr(len(pids)), - ) - - return ret > 1 -} - -// AttachToParentConsole attaches stdout/stderr to the console of the -// process that launched this one (e.g. cmd.exe or PowerShell). -func AttachToParentConsole() { - procAttachConsole.Call(uintptr(attachParentProcess)) -} diff --git a/main.go b/main.go index 9a194c2..0396883 100644 --- a/main.go +++ b/main.go @@ -1,47 +1,16 @@ package main import ( - _ "embed" "os" - "runtime" "github.com/neozmmv/blindspot/cmd" - "github.com/neozmmv/blindspot/internal/gui" - "github.com/neozmmv/blindspot/internal/platform" ) -// appIcon is embedded here (not in internal/gui) because go:embed can only reach -// files at or below the embedding package's directory β€” it can't use ".." to climb -// out. The repo root sits above public/, so it can embed the icon and hand the -// bytes to the GUI, avoiding a duplicate copy inside internal/gui. -// -// It must be a PNG, not an .ico: Wails' tray SetIcon feeds the bytes straight to -// CreateIconFromResourceEx, which wants a single image β€” an .ico container's -// directory header makes it render blank. -// -//go:embed public/BLINDSPOT_tray.png -var appIcon []byte - +// blindspot is the console-subsystem CLI. The system-tray GUI is a separate, +// GUI-subsystem binary (cmd/tray β†’ blindspot-tray.exe) so that running blindspot +// from a terminal behaves like an ordinary command-line tool. func main() { - // Explicit CLI command (e.g. "blindspot connect ...", "blindspot list") - if len(os.Args) > 1 { - if err := cmd.Execute(); err != nil { - os.Exit(1) - } - return - } - - // No arguments passed. On Windows, distinguish between: - // "blindspot" inside an existing terminal -> show help - // double-clicked from Explorer/Start Menu -> launch tray GUI - if runtime.GOOS == "windows" && platform.WasLaunchedFromTerminal() { - platform.AttachToParentConsole() - if err := cmd.Execute(); err != nil { - os.Exit(1) - } - return + if err := cmd.Execute(); err != nil { + os.Exit(1) } - - // Double-click (Windows) or plain "./blindspot" launched fresh (Linux) -> tray - gui.Run(appIcon) } diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 59f32e9..b3731e3 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -1,10 +1,35 @@ $ErrorActionPreference = "Stop" -$Url = "https://github.com/neozmmv/blindspot/releases/latest/download/blindspot.exe" -$Dest = "$env:LOCALAPPDATA\Microsoft\WindowsApps\blindspot.exe" +$Base = "https://github.com/neozmmv/blindspot/releases/latest/download" +$RawIcon = "https://raw.githubusercontent.com/neozmmv/blindspot/master/public/BLINDSPOT.ico" +# WindowsApps is already on PATH; both binaries live here, side by side, so the tray +# can find and shell out to the CLI. +$Dir = "$env:LOCALAPPDATA\Microsoft\WindowsApps" -Write-Host "Downloading latest blindspot..." -Invoke-WebRequest -Uri $Url -OutFile $Dest +Write-Host "Downloading Blindspot (CLI + tray)..." +Invoke-WebRequest -Uri "$Base/blindspot.exe" -OutFile "$Dir\blindspot.exe" +Invoke-WebRequest -Uri "$Base/blindspot-tray.exe" -OutFile "$Dir\blindspot-tray.exe" -Write-Host "Installed to $Dest" -Write-Host "Run 'blindspot' from any terminal." +# Icon for the Start Menu shortcut. The binaries carry no embedded icon by design, +# so fetch the .ico separately; the shortcut still works if this fails. +$IconPath = "$Dir\blindspot.ico" +try { + Invoke-WebRequest -Uri $RawIcon -OutFile $IconPath -ErrorAction Stop +} catch { + $IconPath = $null +} + +# Start Menu shortcut that launches the tray. +$Shortcut = Join-Path ([Environment]::GetFolderPath("Programs")) "Blindspot.lnk" +$Shell = New-Object -ComObject WScript.Shell +$Link = $Shell.CreateShortcut($Shortcut) +$Link.TargetPath = "$Dir\blindspot-tray.exe" +$Link.WorkingDirectory = $Dir +$Link.Description = "Blindspot - P2P VPN tray" +if ($IconPath) { $Link.IconLocation = "$IconPath,0" } +$Link.Save() + +Write-Host "" +Write-Host "Installed to $Dir" +Write-Host " - CLI: run 'blindspot' from any terminal" +Write-Host " - Tray: launch 'Blindspot' from the Start Menu" From d985e5fd798d542ef1e1e09ed27258741ec586aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enzo=20Guti=C3=A9rrez=20Pereira?= Date: Mon, 13 Jul 2026 20:24:09 -0300 Subject: [PATCH 7/7] tray with drag and drop --- .github/workflows/new-release.yml | 13 ++++++ Makefile | 11 ++++- internal/gui/frontend/public/style.css | 65 +++++++++++++++++++++----- internal/gui/frontend/src/App.tsx | 48 ++++++++++++++++--- internal/gui/main.go | 13 ++++-- internal/gui/trayservice.go | 57 +++++++++++++++++----- 6 files changed, 173 insertions(+), 34 deletions(-) diff --git a/.github/workflows/new-release.yml b/.github/workflows/new-release.yml index db5b1dd..b964c04 100644 --- a/.github/workflows/new-release.yml +++ b/.github/workflows/new-release.yml @@ -21,6 +21,19 @@ jobs: with: go-version: '1.25.6' + - name: Set up Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: latest + + # The tray binary embeds internal/gui/frontend/dist (//go:embed), which is + # gitignored, so the frontend must be compiled before `go build ./cmd/tray`. + - name: Build tray frontend + working-directory: internal/gui/frontend + run: | + bun install + bun run build + - name: Build run: | GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/neozmmv/blindspot/cmd.Version=${{ github.ref_name }}" -o blindspot-linux-amd64 . diff --git a/Makefile b/Makefile index 123a93c..258f9e2 100644 --- a/Makefile +++ b/Makefile @@ -2,13 +2,20 @@ BINARY=blindspot VERSION=$(shell git describe --tags --abbrev=0) # VERSION HERE USE LATEST TAG -.PHONY: build build-win build-linux +.PHONY: build build-win build-linux frontend + +FRONTEND_DIR=internal/gui/frontend + +# The tray binary embeds internal/gui/frontend/dist (//go:embed), which is gitignored, +# so the frontend must be compiled before building the tray. +frontend: + cd $(FRONTEND_DIR) && bun install && bun run build # Two Windows binaries: the console-subsystem CLI (blindspot.exe) behaves like a # normal command-line tool from a terminal, and the GUI-subsystem tray # (blindspot-tray.exe, -H windowsgui) launches without ever opening a console. The # tray shells out to the CLI sitting next to it, so ship them in the same folder. -build-win: +build-win: frontend GOOS=windows GOARCH=amd64 go build -ldflags="-X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY).exe . GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui -X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY)-tray.exe ./cmd/tray diff --git a/internal/gui/frontend/public/style.css b/internal/gui/frontend/public/style.css index dd911dd..3dd04aa 100644 --- a/internal/gui/frontend/public/style.css +++ b/internal/gui/frontend/public/style.css @@ -67,22 +67,47 @@ button { font-family: inherit; } } .brand-name { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; } -.pill { +.topbar-right { + display: flex; + align-items: center; + gap: 10px; + min-width: 0; + /* Exempt the controls from the draggable title bar so clicks register. */ + --wails-draggable: no-drag; +} + +.win-btn { display: inline-flex; align-items: center; - gap: 7px; - padding: 5px 11px 5px 9px; - border-radius: 999px; - font-size: 12px; - font-weight: 500; + justify-content: center; + width: 26px; + height: 26px; + padding: 0; + margin: 0; + line-height: 0; + flex-shrink: 0; + border-radius: 7px; border: 1px solid var(--border); background: var(--surface); + color: var(--text-2); + cursor: pointer; + transition: color 0.15s, border-color 0.15s, background 0.15s; +} +.win-btn:hover { color: var(--text); border-color: var(--border-strong); background: var(--surface-2); } +.win-btn svg { display: block; } + +.version { + flex-shrink: 1; + max-width: 140px; + font-size: 12px; + font-weight: 500; + color: var(--text-3); + font-variant-numeric: tabular-nums; + letter-spacing: 0.01em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } -.pill-dot { width: 7px; height: 7px; border-radius: 50%; } -.pill-on { color: #d6f5e1; } -.pill-on .pill-dot { background: var(--green); box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18); } -.pill-off { color: var(--text-2); } -.pill-off .pill-dot { background: var(--text-3); } /* ── content ─────────────────────────────────────────── */ .content { @@ -206,6 +231,24 @@ button { font-family: inherit; } text-overflow: ellipsis; white-space: nowrap; } +.peer-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; } +.peer-copy { + display: inline-flex; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + padding: 0; + line-height: 0; + border-radius: 7px; + border: 1px solid var(--border); + background: var(--surface-2); + color: var(--text-2); + cursor: pointer; + transition: color 0.15s, border-color 0.15s, background 0.15s; +} +.peer-copy:hover { color: var(--text); border-color: var(--border-strong); background: var(--surface); } +.peer-copy svg { display: block; } .peer-action { display: grid; place-items: center; diff --git a/internal/gui/frontend/src/App.tsx b/internal/gui/frontend/src/App.tsx index bf476e1..b90219f 100644 --- a/internal/gui/frontend/src/App.tsx +++ b/internal/gui/frontend/src/App.tsx @@ -1,5 +1,5 @@ import { useState, useEffect, useCallback } from 'react' -import { Events } from '@wailsio/runtime' +import { Events, Window } from '@wailsio/runtime' import { TrayService } from '../bindings/github.com/neozmmv/blindspot/internal/gui' interface Peer { @@ -53,6 +53,9 @@ const IconDownload = () => ( const IconPower = () => ( ) +/* const IconMinimize = () => ( + +) */ function App() { const [status, setStatus] = useState(emptyStatus) @@ -61,6 +64,8 @@ function App() { const [password, setPassword] = useState('') const [isNew, setIsNew] = useState(false) const [copied, setCopied] = useState(false) + const [copiedPeer, setCopiedPeer] = useState('') + const [version, setVersion] = useState('') const refresh = useCallback(async () => { try { @@ -72,6 +77,17 @@ function App() { useEffect(() => { refresh() + TrayService.Version() + .then((v) => { + // Release builds report a clean tag (e.g. "v1.3.10"); dev builds report a Go + // pseudo-version ("v1.3.10-0.-+dirty") β€” trim that noise. + const clean = String(v) + .replace(/^blindspot\s+/i, '') + .replace(/\+.*$/, '') + .replace(/-0\.\d{12,14}-[0-9a-f]+$/i, '') + setVersion(clean) + }) + .catch(() => {}) const off = Events.On('status', (ev: any) => { if (ev?.data) setStatus(ev.data as Status) }) @@ -109,6 +125,14 @@ function App() { } catch { /* clipboard unavailable */ } } + const copyPeer = async (ip: string) => { + try { + await navigator.clipboard.writeText(ip) + setCopiedPeer(ip) + window.setTimeout(() => setCopiedPeer(''), 1400) + } catch { /* clipboard unavailable */ } + } + const sendTo = async (peerIP: string) => { try { const path = await TrayService.SelectFile() @@ -133,10 +157,12 @@ function App() { Blindspot Blindspot - - - {status.connected ? 'Connected' : 'Disconnected'} - +
+ {version && {version}} + +
{status.connected ? ( @@ -181,7 +207,17 @@ function App() { {p.virtualIP} {p.publicAddr} - +
+ + +
Drop to send ))} diff --git a/internal/gui/main.go b/internal/gui/main.go index d45b729..8450ef1 100644 --- a/internal/gui/main.go +++ b/internal/gui/main.go @@ -73,7 +73,10 @@ func Run() { Hidden: true, DisableResize: true, HideOnEscape: true, - HideOnFocusLost: true, + // Stay open when the user alt-tabs or clicks away β€” the panel only hides via + // the minimize button, Escape, the tray icon, or clicking outside is a no-op. + // It keeps AlwaysOnTop so it floats above other windows while visible. + HideOnFocusLost: false, BackgroundColour: application.NewRGB(0, 0, 0), URL: "/", EnableFileDrop: true, @@ -84,8 +87,12 @@ func Run() { // Drag-and-drop send: each peer card in the frontend is tagged // data-file-drop-target + data-peer-ip. Dropping OS files onto one fires this - // hook with the target's attributes, so we send each file to that peer. - window.RegisterHook(events.Common.WindowFilesDropped, func(e *application.WindowEvent) { + // with the target's attributes, so we send each file to that peer. + // + // Must be OnWindowEvent, NOT RegisterHook: Wails dispatches WindowFilesDropped + // only to eventListeners (OnWindowEvent), never to eventHooks (RegisterHook), so + // a hook here silently never fires β€” the drag highlight works but no send starts. + window.OnWindowEvent(events.Common.WindowFilesDropped, func(e *application.WindowEvent) { ctx := e.Context() files := ctx.DroppedFiles() details := ctx.DropTargetDetails() diff --git a/internal/gui/trayservice.go b/internal/gui/trayservice.go index ceac556..9243652 100644 --- a/internal/gui/trayservice.go +++ b/internal/gui/trayservice.go @@ -49,11 +49,12 @@ type Status struct { // (connect / send / receive), and reading the on-disk session state directly for // everything else. type TrayService struct { - mu sync.Mutex - busy bool - transfer string - session string // the session name this tray connected to, if any - recvCmd *exec.Cmd // running `receive` process, if any + mu sync.Mutex + busy bool + transfer string + session string // the session name this tray connected to, if any + recvCmd *exec.Cmd // running `receive` process, if any + recvCancelled bool // set when the user stops the receive, so we clear rather than report } // cliExe returns the path to the blindspot CLI binary the tray shells out to. The @@ -168,6 +169,26 @@ func (s *TrayService) setTransfer(msg string) { s.emit() } +// clearTransferAfter blanks the transfer line after d β€” but only if it still shows +// msg and no receive is running, so a newer transfer's status is never wiped. +func (s *TrayService) clearTransferAfter(msg string, d time.Duration) { + if msg == "" { + return + } + go func() { + time.Sleep(d) + s.mu.Lock() + cleared := s.transfer == msg && s.recvCmd == nil + if cleared { + s.transfer = "" + } + s.mu.Unlock() + if cleared { + s.emit() + } + }() +} + // Connect runs `blindspot connect -s -p [-n]`, which triggers // the UAC elevation + daemon launch and blocks until the session is up (or fails). // It returns the final status line the CLI printed. @@ -272,14 +293,15 @@ func (s *TrayService) SendFile(peerIP, filePath string) (string, error) { out, err := s.runCLI("send", peerIP, filePath) last := lastLine(out) if err != nil { - if last != "" { - s.setTransfer(last) - return "", fmt.Errorf("%s", last) + if last == "" { + last = "Send failed." } - s.setTransfer("Send failed.") - return "", err + s.setTransfer(last) + s.clearTransferAfter(last, 8*time.Second) + return "", fmt.Errorf("%s", last) } s.setTransfer(last) + s.clearTransferAfter(last, 8*time.Second) return last, nil } @@ -328,11 +350,19 @@ func (s *TrayService) StartReceive(here bool) error { cmd.Wait() s.mu.Lock() s.recvCmd = nil - if strings.HasPrefix(s.transfer, "Waiting") { - s.transfer = "Stopped waiting." + cancelled := s.recvCancelled + s.recvCancelled = false + result := s.transfer + // A user stop, or ending while still just waiting, leaves no useful result β€” + // clear the line so it doesn't linger. A real outcome (file saved, or an + // error mid-transfer) stays briefly, then auto-clears below. + if cancelled || strings.HasPrefix(result, "Waiting") { + s.transfer = "" + result = "" } s.mu.Unlock() s.emit() + s.clearTransferAfter(result, 8*time.Second) }() return nil } @@ -341,6 +371,9 @@ func (s *TrayService) StartReceive(here bool) error { func (s *TrayService) CancelReceive() error { s.mu.Lock() cmd := s.recvCmd + if cmd != nil { + s.recvCancelled = true + } s.mu.Unlock() if cmd == nil || cmd.Process == nil { return nil
- -
{resultText}
-
- - -
+ const doGreet = () => { + let n = name || 'anonymous'; + swapTitleName(n); + GreetService.Greet(n).then(showToast).catch(console.error); + }; + + useEffect(() => { + Events.On('time', (timeValue: any) => { + // On a narrow screen the full RFC1123 stamp is too wide for the footer, so + // show just the clock time there (matching the CSS breakpoint). + const full = timeValue.data; + const compact = (full.match(/\d{1,2}:\d{2}:\d{2}/) || [full])[0]; + setTime(window.matchMedia('(max-width: 640px)').matches ? compact : full); + }); + // Reload WML so it picks up the wml tags + WML.Reload(); + }, []); + + return ( + <> +
+
+ + Wails logo + + + React logo + +
+ +

Wails + React

+

Build beautiful cross-platform apps with Go and React.

+ +
+
+ + setName(e.target.value)} type="text" placeholder="Your name" autoComplete="off"/> + +
- ) +
+ +
+
+ {wailsVersion} + + + {time} + + Docs + + +
+ +
+ From Go + +
+ + ) } export default App diff --git a/internal/gui/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 b/internal/gui/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 deleted file mode 100644 index 2f9cc5964455b8f5ca989db989250dbebb1a5f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18972 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

``Cl35~rb|Fd`a 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�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 - - +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + , ) diff --git a/internal/gui/frontend/src/style.css b/internal/gui/frontend/src/style.css deleted file mode 100644 index 3940d6c..0000000 --- a/internal/gui/frontend/src/style.css +++ /dev/null @@ -1,26 +0,0 @@ -html { - background-color: rgba(27, 38, 54, 1); - text-align: center; - color: white; -} - -body { - margin: 0; - color: white; - font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", - "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; -} - -@font-face { - font-family: "Nunito"; - font-style: normal; - font-weight: 400; - src: local(""), - url("assets/fonts/nunito-v16-latin-regular.woff2") format("woff2"); -} - -#app { - height: 100vh; - text-align: center; -} diff --git a/internal/gui/frontend/tsconfig.json b/internal/gui/frontend/tsconfig.json index 823e83d..ae81ea6 100644 --- a/internal/gui/frontend/tsconfig.json +++ b/internal/gui/frontend/tsconfig.json @@ -1,31 +1,25 @@ { "compilerOptions": { - "target": "ESNext", + "target": "ES2020", "useDefineForClassFields": true, - "lib": [ - "DOM", - "DOM.Iterable", - "ESNext" - ], - "allowJs": false, - "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], "module": "ESNext", - "moduleResolution": "Node", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react-jsx" + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": false, + "noImplicitAny": false, + "noFallthroughCasesInSwitch": true }, - "include": [ - "src" - ], - "references": [ - { - "path": "./tsconfig.node.json" - } - ] + "include": ["src", "bindings"], } diff --git a/internal/gui/frontend/tsconfig.node.json b/internal/gui/frontend/tsconfig.node.json deleted file mode 100644 index b8afcc8..0000000 --- a/internal/gui/frontend/tsconfig.node.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "module": "ESNext", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true - }, - "include": [ - "vite.config.ts" - ] -} diff --git a/internal/gui/frontend/vite.config.ts b/internal/gui/frontend/vite.config.ts index 4955065..d0628a2 100644 --- a/internal/gui/frontend/vite.config.ts +++ b/internal/gui/frontend/vite.config.ts @@ -1,7 +1,13 @@ -import {defineConfig} from 'vite' -import react from '@vitejs/plugin-react' +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import wails from "@wailsio/runtime/plugins/vite"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()] -}) + server: { + host: "127.0.0.1", + port: Number(process.env.WAILS_VITE_PORT) || 9245, + strictPort: true, + }, + plugins: [react(), wails("./bindings")], +}); diff --git a/internal/gui/frontend/wailsjs/go/main/App.js b/internal/gui/frontend/wailsjs/go/main/App.js deleted file mode 100644 index 0ee085c..0000000 --- a/internal/gui/frontend/wailsjs/go/main/App.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL -// This file is automatically generated. DO NOT EDIT - -export function Greet(arg1) { - return window['go']['main']['App']['Greet'](arg1); -} diff --git a/internal/gui/frontend/wailsjs/runtime/package.json b/internal/gui/frontend/wailsjs/runtime/package.json deleted file mode 100644 index 1e7c8a5..0000000 --- a/internal/gui/frontend/wailsjs/runtime/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@wailsapp/runtime", - "version": "2.0.0", - "description": "Wails Javascript runtime library", - "main": "runtime.js", - "types": "runtime.d.ts", - "scripts": { - }, - "repository": { - "type": "git", - "url": "git+https://github.com/wailsapp/wails.git" - }, - "keywords": [ - "Wails", - "Javascript", - "Go" - ], - "author": "Lea Anthony ", - "license": "MIT", - "bugs": { - "url": "https://github.com/wailsapp/wails/issues" - }, - "homepage": "https://github.com/wailsapp/wails#readme" -} diff --git a/internal/gui/frontend/wailsjs/runtime/runtime.d.ts b/internal/gui/frontend/wailsjs/runtime/runtime.d.ts deleted file mode 100644 index 3bbea84..0000000 --- a/internal/gui/frontend/wailsjs/runtime/runtime.d.ts +++ /dev/null @@ -1,330 +0,0 @@ -/* - _ __ _ __ -| | / /___ _(_) /____ -| | /| / / __ `/ / / ___/ -| |/ |/ / /_/ / / (__ ) -|__/|__/\__,_/_/_/____/ -The electron alternative for Go -(c) Lea Anthony 2019-present -*/ - -export interface Position { - x: number; - y: number; -} - -export interface Size { - w: number; - h: number; -} - -export interface Screen { - isCurrent: boolean; - isPrimary: boolean; - width : number - height : number -} - -// Environment information such as platform, buildtype, ... -export interface EnvironmentInfo { - buildType: string; - platform: string; - arch: string; -} - -// [EventsEmit](https://wails.io/docs/reference/runtime/events#eventsemit) -// emits the given event. Optional data may be passed with the event. -// This will trigger any event listeners. -export function EventsEmit(eventName: string, ...data: any): void; - -// [EventsOn](https://wails.io/docs/reference/runtime/events#eventson) sets up a listener for the given event name. -export function EventsOn(eventName: string, callback: (...data: any) => void): () => void; - -// [EventsOnMultiple](https://wails.io/docs/reference/runtime/events#eventsonmultiple) -// sets up a listener for the given event name, but will only trigger a given number times. -export function EventsOnMultiple(eventName: string, callback: (...data: any) => void, maxCallbacks: number): () => void; - -// [EventsOnce](https://wails.io/docs/reference/runtime/events#eventsonce) -// sets up a listener for the given event name, but will only trigger once. -export function EventsOnce(eventName: string, callback: (...data: any) => void): () => void; - -// [EventsOff](https://wails.io/docs/reference/runtime/events#eventsoff) -// unregisters the listener for the given event name. -export function EventsOff(eventName: string, ...additionalEventNames: string[]): void; - -// [EventsOffAll](https://wails.io/docs/reference/runtime/events#eventsoffall) -// unregisters all listeners. -export function EventsOffAll(): void; - -// [LogPrint](https://wails.io/docs/reference/runtime/log#logprint) -// logs the given message as a raw message -export function LogPrint(message: string): void; - -// [LogTrace](https://wails.io/docs/reference/runtime/log#logtrace) -// logs the given message at the `trace` log level. -export function LogTrace(message: string): void; - -// [LogDebug](https://wails.io/docs/reference/runtime/log#logdebug) -// logs the given message at the `debug` log level. -export function LogDebug(message: string): void; - -// [LogError](https://wails.io/docs/reference/runtime/log#logerror) -// logs the given message at the `error` log level. -export function LogError(message: string): void; - -// [LogFatal](https://wails.io/docs/reference/runtime/log#logfatal) -// logs the given message at the `fatal` log level. -// The application will quit after calling this method. -export function LogFatal(message: string): void; - -// [LogInfo](https://wails.io/docs/reference/runtime/log#loginfo) -// logs the given message at the `info` log level. -export function LogInfo(message: string): void; - -// [LogWarning](https://wails.io/docs/reference/runtime/log#logwarning) -// logs the given message at the `warning` log level. -export function LogWarning(message: string): void; - -// [WindowReload](https://wails.io/docs/reference/runtime/window#windowreload) -// Forces a reload by the main application as well as connected browsers. -export function WindowReload(): void; - -// [WindowReloadApp](https://wails.io/docs/reference/runtime/window#windowreloadapp) -// Reloads the application frontend. -export function WindowReloadApp(): void; - -// [WindowSetAlwaysOnTop](https://wails.io/docs/reference/runtime/window#windowsetalwaysontop) -// Sets the window AlwaysOnTop or not on top. -export function WindowSetAlwaysOnTop(b: boolean): void; - -// [WindowSetSystemDefaultTheme](https://wails.io/docs/next/reference/runtime/window#windowsetsystemdefaulttheme) -// *Windows only* -// Sets window theme to system default (dark/light). -export function WindowSetSystemDefaultTheme(): void; - -// [WindowSetLightTheme](https://wails.io/docs/next/reference/runtime/window#windowsetlighttheme) -// *Windows only* -// Sets window to light theme. -export function WindowSetLightTheme(): void; - -// [WindowSetDarkTheme](https://wails.io/docs/next/reference/runtime/window#windowsetdarktheme) -// *Windows only* -// Sets window to dark theme. -export function WindowSetDarkTheme(): void; - -// [WindowCenter](https://wails.io/docs/reference/runtime/window#windowcenter) -// Centers the window on the monitor the window is currently on. -export function WindowCenter(): void; - -// [WindowSetTitle](https://wails.io/docs/reference/runtime/window#windowsettitle) -// Sets the text in the window title bar. -export function WindowSetTitle(title: string): void; - -// [WindowFullscreen](https://wails.io/docs/reference/runtime/window#windowfullscreen) -// Makes the window full screen. -export function WindowFullscreen(): void; - -// [WindowUnfullscreen](https://wails.io/docs/reference/runtime/window#windowunfullscreen) -// Restores the previous window dimensions and position prior to full screen. -export function WindowUnfullscreen(): void; - -// [WindowIsFullscreen](https://wails.io/docs/reference/runtime/window#windowisfullscreen) -// Returns the state of the window, i.e. whether the window is in full screen mode or not. -export function WindowIsFullscreen(): Promise; - -// [WindowSetSize](https://wails.io/docs/reference/runtime/window#windowsetsize) -// Sets the width and height of the window. -export function WindowSetSize(width: number, height: number): void; - -// [WindowGetSize](https://wails.io/docs/reference/runtime/window#windowgetsize) -// Gets the width and height of the window. -export function WindowGetSize(): Promise; - -// [WindowSetMaxSize](https://wails.io/docs/reference/runtime/window#windowsetmaxsize) -// Sets the maximum window size. Will resize the window if the window is currently larger than the given dimensions. -// Setting a size of 0,0 will disable this constraint. -export function WindowSetMaxSize(width: number, height: number): void; - -// [WindowSetMinSize](https://wails.io/docs/reference/runtime/window#windowsetminsize) -// Sets the minimum window size. Will resize the window if the window is currently smaller than the given dimensions. -// Setting a size of 0,0 will disable this constraint. -export function WindowSetMinSize(width: number, height: number): void; - -// [WindowSetPosition](https://wails.io/docs/reference/runtime/window#windowsetposition) -// Sets the window position relative to the monitor the window is currently on. -export function WindowSetPosition(x: number, y: number): void; - -// [WindowGetPosition](https://wails.io/docs/reference/runtime/window#windowgetposition) -// Gets the window position relative to the monitor the window is currently on. -export function WindowGetPosition(): Promise; - -// [WindowHide](https://wails.io/docs/reference/runtime/window#windowhide) -// Hides the window. -export function WindowHide(): void; - -// [WindowShow](https://wails.io/docs/reference/runtime/window#windowshow) -// Shows the window, if it is currently hidden. -export function WindowShow(): void; - -// [WindowMaximise](https://wails.io/docs/reference/runtime/window#windowmaximise) -// Maximises the window to fill the screen. -export function WindowMaximise(): void; - -// [WindowToggleMaximise](https://wails.io/docs/reference/runtime/window#windowtogglemaximise) -// Toggles between Maximised and UnMaximised. -export function WindowToggleMaximise(): void; - -// [WindowUnmaximise](https://wails.io/docs/reference/runtime/window#windowunmaximise) -// Restores the window to the dimensions and position prior to maximising. -export function WindowUnmaximise(): void; - -// [WindowIsMaximised](https://wails.io/docs/reference/runtime/window#windowismaximised) -// Returns the state of the window, i.e. whether the window is maximised or not. -export function WindowIsMaximised(): Promise; - -// [WindowMinimise](https://wails.io/docs/reference/runtime/window#windowminimise) -// Minimises the window. -export function WindowMinimise(): void; - -// [WindowUnminimise](https://wails.io/docs/reference/runtime/window#windowunminimise) -// Restores the window to the dimensions and position prior to minimising. -export function WindowUnminimise(): void; - -// [WindowIsMinimised](https://wails.io/docs/reference/runtime/window#windowisminimised) -// Returns the state of the window, i.e. whether the window is minimised or not. -export function WindowIsMinimised(): Promise; - -// [WindowIsNormal](https://wails.io/docs/reference/runtime/window#windowisnormal) -// Returns the state of the window, i.e. whether the window is normal or not. -export function WindowIsNormal(): Promise; - -// [WindowSetBackgroundColour](https://wails.io/docs/reference/runtime/window#windowsetbackgroundcolour) -// Sets the background colour of the window to the given RGBA colour definition. This colour will show through for all transparent pixels. -export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void; - -// [ScreenGetAll](https://wails.io/docs/reference/runtime/window#screengetall) -// Gets the all screens. Call this anew each time you want to refresh data from the underlying windowing system. -export function ScreenGetAll(): Promise; - -// [BrowserOpenURL](https://wails.io/docs/reference/runtime/browser#browseropenurl) -// Opens the given URL in the system browser. -export function BrowserOpenURL(url: string): void; - -// [Environment](https://wails.io/docs/reference/runtime/intro#environment) -// Returns information about the environment -export function Environment(): Promise; - -// [Quit](https://wails.io/docs/reference/runtime/intro#quit) -// Quits the application. -export function Quit(): void; - -// [Hide](https://wails.io/docs/reference/runtime/intro#hide) -// Hides the application. -export function Hide(): void; - -// [Show](https://wails.io/docs/reference/runtime/intro#show) -// Shows the application. -export function Show(): void; - -// [ClipboardGetText](https://wails.io/docs/reference/runtime/clipboard#clipboardgettext) -// Returns the current text stored on clipboard -export function ClipboardGetText(): Promise; - -// [ClipboardSetText](https://wails.io/docs/reference/runtime/clipboard#clipboardsettext) -// Sets a text on the clipboard -export function ClipboardSetText(text: string): Promise; - -// [OnFileDrop](https://wails.io/docs/reference/runtime/draganddrop#onfiledrop) -// OnFileDrop listens to drag and drop events and calls the callback with the coordinates of the drop and an array of path strings. -export function OnFileDrop(callback: (x: number, y: number ,paths: string[]) => void, useDropTarget: boolean) :void - -// [OnFileDropOff](https://wails.io/docs/reference/runtime/draganddrop#dragandddropoff) -// OnFileDropOff removes the drag and drop listeners and handlers. -export function OnFileDropOff() :void - -// Check if the file path resolver is available -export function CanResolveFilePaths(): boolean; - -// Resolves file paths for an array of files -export function ResolveFilePaths(files: File[]): void - -// Notification types -export interface NotificationOptions { - id: string; - title: string; - subtitle?: string; // macOS and Linux only - body?: string; - categoryId?: string; - data?: { [key: string]: any }; -} - -export interface NotificationAction { - id?: string; - title?: string; - destructive?: boolean; // macOS-specific -} - -export interface NotificationCategory { - id?: string; - actions?: NotificationAction[]; - hasReplyField?: boolean; - replyPlaceholder?: string; - replyButtonTitle?: string; -} - -// [InitializeNotifications](https://wails.io/docs/reference/runtime/notification#initializenotifications) -// Initializes the notification service for the application. -// This must be called before sending any notifications. -export function InitializeNotifications(): Promise; - -// [CleanupNotifications](https://wails.io/docs/reference/runtime/notification#cleanupnotifications) -// Cleans up notification resources and releases any held connections. -export function CleanupNotifications(): Promise; - -// [IsNotificationAvailable](https://wails.io/docs/reference/runtime/notification#isnotificationavailable) -// Checks if notifications are available on the current platform. -export function IsNotificationAvailable(): Promise; - -// [RequestNotificationAuthorization](https://wails.io/docs/reference/runtime/notification#requestnotificationauthorization) -// Requests notification authorization from the user (macOS only). -export function RequestNotificationAuthorization(): Promise; - -// [CheckNotificationAuthorization](https://wails.io/docs/reference/runtime/notification#checknotificationauthorization) -// Checks the current notification authorization status (macOS only). -export function CheckNotificationAuthorization(): Promise; - -// [SendNotification](https://wails.io/docs/reference/runtime/notification#sendnotification) -// Sends a basic notification with the given options. -export function SendNotification(options: NotificationOptions): Promise; - -// [SendNotificationWithActions](https://wails.io/docs/reference/runtime/notification#sendnotificationwithactions) -// Sends a notification with action buttons. Requires a registered category. -export function SendNotificationWithActions(options: NotificationOptions): Promise; - -// [RegisterNotificationCategory](https://wails.io/docs/reference/runtime/notification#registernotificationcategory) -// Registers a notification category that can be used with SendNotificationWithActions. -export function RegisterNotificationCategory(category: NotificationCategory): Promise; - -// [RemoveNotificationCategory](https://wails.io/docs/reference/runtime/notification#removenotificationcategory) -// Removes a previously registered notification category. -export function RemoveNotificationCategory(categoryId: string): Promise; - -// [RemoveAllPendingNotifications](https://wails.io/docs/reference/runtime/notification#removeallpendingnotifications) -// Removes all pending notifications from the notification center. -export function RemoveAllPendingNotifications(): Promise; - -// [RemovePendingNotification](https://wails.io/docs/reference/runtime/notification#removependingnotification) -// Removes a specific pending notification by its identifier. -export function RemovePendingNotification(identifier: string): Promise; - -// [RemoveAllDeliveredNotifications](https://wails.io/docs/reference/runtime/notification#removealldeliverednotifications) -// Removes all delivered notifications from the notification center. -export function RemoveAllDeliveredNotifications(): Promise; - -// [RemoveDeliveredNotification](https://wails.io/docs/reference/runtime/notification#removedeliverednotification) -// Removes a specific delivered notification by its identifier. -export function RemoveDeliveredNotification(identifier: string): Promise; - -// [RemoveNotification](https://wails.io/docs/reference/runtime/notification#removenotification) -// Removes a notification by its identifier (cross-platform convenience function). -export function RemoveNotification(identifier: string): Promise; \ No newline at end of file diff --git a/internal/gui/frontend/wailsjs/runtime/runtime.js b/internal/gui/frontend/wailsjs/runtime/runtime.js deleted file mode 100644 index 556621e..0000000 --- a/internal/gui/frontend/wailsjs/runtime/runtime.js +++ /dev/null @@ -1,298 +0,0 @@ -/* - _ __ _ __ -| | / /___ _(_) /____ -| | /| / / __ `/ / / ___/ -| |/ |/ / /_/ / / (__ ) -|__/|__/\__,_/_/_/____/ -The electron alternative for Go -(c) Lea Anthony 2019-present -*/ - -export function LogPrint(message) { - window.runtime.LogPrint(message); -} - -export function LogTrace(message) { - window.runtime.LogTrace(message); -} - -export function LogDebug(message) { - window.runtime.LogDebug(message); -} - -export function LogInfo(message) { - window.runtime.LogInfo(message); -} - -export function LogWarning(message) { - window.runtime.LogWarning(message); -} - -export function LogError(message) { - window.runtime.LogError(message); -} - -export function LogFatal(message) { - window.runtime.LogFatal(message); -} - -export function EventsOnMultiple(eventName, callback, maxCallbacks) { - return window.runtime.EventsOnMultiple(eventName, callback, maxCallbacks); -} - -export function EventsOn(eventName, callback) { - return EventsOnMultiple(eventName, callback, -1); -} - -export function EventsOff(eventName, ...additionalEventNames) { - return window.runtime.EventsOff(eventName, ...additionalEventNames); -} - -export function EventsOffAll() { - return window.runtime.EventsOffAll(); -} - -export function EventsOnce(eventName, callback) { - return EventsOnMultiple(eventName, callback, 1); -} - -export function EventsEmit(eventName) { - let args = [eventName].slice.call(arguments); - return window.runtime.EventsEmit.apply(null, args); -} - -export function WindowReload() { - window.runtime.WindowReload(); -} - -export function WindowReloadApp() { - window.runtime.WindowReloadApp(); -} - -export function WindowSetAlwaysOnTop(b) { - window.runtime.WindowSetAlwaysOnTop(b); -} - -export function WindowSetSystemDefaultTheme() { - window.runtime.WindowSetSystemDefaultTheme(); -} - -export function WindowSetLightTheme() { - window.runtime.WindowSetLightTheme(); -} - -export function WindowSetDarkTheme() { - window.runtime.WindowSetDarkTheme(); -} - -export function WindowCenter() { - window.runtime.WindowCenter(); -} - -export function WindowSetTitle(title) { - window.runtime.WindowSetTitle(title); -} - -export function WindowFullscreen() { - window.runtime.WindowFullscreen(); -} - -export function WindowUnfullscreen() { - window.runtime.WindowUnfullscreen(); -} - -export function WindowIsFullscreen() { - return window.runtime.WindowIsFullscreen(); -} - -export function WindowGetSize() { - return window.runtime.WindowGetSize(); -} - -export function WindowSetSize(width, height) { - window.runtime.WindowSetSize(width, height); -} - -export function WindowSetMaxSize(width, height) { - window.runtime.WindowSetMaxSize(width, height); -} - -export function WindowSetMinSize(width, height) { - window.runtime.WindowSetMinSize(width, height); -} - -export function WindowSetPosition(x, y) { - window.runtime.WindowSetPosition(x, y); -} - -export function WindowGetPosition() { - return window.runtime.WindowGetPosition(); -} - -export function WindowHide() { - window.runtime.WindowHide(); -} - -export function WindowShow() { - window.runtime.WindowShow(); -} - -export function WindowMaximise() { - window.runtime.WindowMaximise(); -} - -export function WindowToggleMaximise() { - window.runtime.WindowToggleMaximise(); -} - -export function WindowUnmaximise() { - window.runtime.WindowUnmaximise(); -} - -export function WindowIsMaximised() { - return window.runtime.WindowIsMaximised(); -} - -export function WindowMinimise() { - window.runtime.WindowMinimise(); -} - -export function WindowUnminimise() { - window.runtime.WindowUnminimise(); -} - -export function WindowSetBackgroundColour(R, G, B, A) { - window.runtime.WindowSetBackgroundColour(R, G, B, A); -} - -export function ScreenGetAll() { - return window.runtime.ScreenGetAll(); -} - -export function WindowIsMinimised() { - return window.runtime.WindowIsMinimised(); -} - -export function WindowIsNormal() { - return window.runtime.WindowIsNormal(); -} - -export function BrowserOpenURL(url) { - window.runtime.BrowserOpenURL(url); -} - -export function Environment() { - return window.runtime.Environment(); -} - -export function Quit() { - window.runtime.Quit(); -} - -export function Hide() { - window.runtime.Hide(); -} - -export function Show() { - window.runtime.Show(); -} - -export function ClipboardGetText() { - return window.runtime.ClipboardGetText(); -} - -export function ClipboardSetText(text) { - return window.runtime.ClipboardSetText(text); -} - -/** - * Callback for OnFileDrop returns a slice of file path strings when a drop is finished. - * - * @export - * @callback OnFileDropCallback - * @param {number} x - x coordinate of the drop - * @param {number} y - y coordinate of the drop - * @param {string[]} paths - A list of file paths. - */ - -/** - * OnFileDrop listens to drag and drop events and calls the callback with the coordinates of the drop and an array of path strings. - * - * @export - * @param {OnFileDropCallback} callback - Callback for OnFileDrop returns a slice of file path strings when a drop is finished. - * @param {boolean} [useDropTarget=true] - Only call the callback when the drop finished on an element that has the drop target style. (--wails-drop-target) - */ -export function OnFileDrop(callback, useDropTarget) { - return window.runtime.OnFileDrop(callback, useDropTarget); -} - -/** - * OnFileDropOff removes the drag and drop listeners and handlers. - */ -export function OnFileDropOff() { - return window.runtime.OnFileDropOff(); -} - -export function CanResolveFilePaths() { - return window.runtime.CanResolveFilePaths(); -} - -export function ResolveFilePaths(files) { - return window.runtime.ResolveFilePaths(files); -} - -export function InitializeNotifications() { - return window.runtime.InitializeNotifications(); -} - -export function CleanupNotifications() { - return window.runtime.CleanupNotifications(); -} - -export function IsNotificationAvailable() { - return window.runtime.IsNotificationAvailable(); -} - -export function RequestNotificationAuthorization() { - return window.runtime.RequestNotificationAuthorization(); -} - -export function CheckNotificationAuthorization() { - return window.runtime.CheckNotificationAuthorization(); -} - -export function SendNotification(options) { - return window.runtime.SendNotification(options); -} - -export function SendNotificationWithActions(options) { - return window.runtime.SendNotificationWithActions(options); -} - -export function RegisterNotificationCategory(category) { - return window.runtime.RegisterNotificationCategory(category); -} - -export function RemoveNotificationCategory(categoryId) { - return window.runtime.RemoveNotificationCategory(categoryId); -} - -export function RemoveAllPendingNotifications() { - return window.runtime.RemoveAllPendingNotifications(); -} - -export function RemovePendingNotification(identifier) { - return window.runtime.RemovePendingNotification(identifier); -} - -export function RemoveAllDeliveredNotifications() { - return window.runtime.RemoveAllDeliveredNotifications(); -} - -export function RemoveDeliveredNotification(identifier) { - return window.runtime.RemoveDeliveredNotification(identifier); -} - -export function RemoveNotification(identifier) { - return window.runtime.RemoveNotification(identifier); -} \ No newline at end of file diff --git a/internal/gui/greetservice.go b/internal/gui/greetservice.go new file mode 100644 index 0000000..8972c39 --- /dev/null +++ b/internal/gui/greetservice.go @@ -0,0 +1,7 @@ +package main + +type GreetService struct{} + +func (g *GreetService) Greet(name string) string { + return "Hello " + name + "!" +} diff --git a/internal/gui/main.go b/internal/gui/main.go index 812b290..e4f1fb4 100644 --- a/internal/gui/main.go +++ b/internal/gui/main.go @@ -1,36 +1,100 @@ -package gui +package main import ( "embed" + "log" + "os" + "runtime" + "time" - "github.com/wailsapp/wails/v2" - "github.com/wailsapp/wails/v2/pkg/options" - "github.com/wailsapp/wails/v2/pkg/options/assetserver" + "github.com/wailsapp/wails/v3/pkg/application" + "github.com/wailsapp/wails/v3/pkg/events" + "github.com/wailsapp/wails/v3/pkg/icons" + + "github.com/neozmmv/blindspot/cmd" + "github.com/neozmmv/blindspot/internal/platform" ) //go:embed all:frontend/dist var assets embed.FS -func Run() { - // Create an instance of the app structure - app := NewApp() - - // Create application with options - err := wails.Run(&options.App{ - Title: "blindspot-tray", - Width: 1024, - Height: 768, - AssetServer: &assetserver.Options{ - Assets: assets, +func init() { + application.RegisterEvent[string]("time") +} + +func main() { + if len(os.Args) > 1 { + if err := cmd.Execute(); err != nil { + os.Exit(1) + } + return + } + + if runtime.GOOS == "windows" && platform.WasLaunchedFromTerminal() { + platform.AttachToParentConsole() + if err := cmd.Execute(); err != nil { + os.Exit(1) + } + return + } + + runGUI() +} + +func runGUI() { + app := application.New(application.Options{ + Name: "Blindspot", + Description: "P2P Toolkit: VPN, File Sharing, Chat, and More", + Services: []application.Service{ + application.NewService(&GreetService{}), + }, + Assets: application.AssetOptions{ + Handler: application.AssetFileServerFS(assets), }, - BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1}, - OnStartup: app.startup, - Bind: []interface{}{ - app, + Mac: application.MacOptions{ + ActivationPolicy: application.ActivationPolicyAccessory, }, }) - if err != nil { - println("Error:", err.Error()) + systemTray := app.SystemTray.New() + + window := app.Window.NewWithOptions(application.WebviewWindowOptions{ + Title: "Blindspot", + Width: 400, + Height: 600, + Frameless: true, + AlwaysOnTop: true, + Hidden: true, + DisableResize: true, + HideOnEscape: true, + HideOnFocusLost: true, + BackgroundColour: application.NewRGB(6, 7, 15), + URL: "/", + Windows: application.WindowsWindow{ + HiddenOnTaskbar: true, + }, + }) + + window.RegisterHook(events.Common.WindowClosing, func(e *application.WindowEvent) { + window.Hide() + e.Cancel() + }) + + if runtime.GOOS == "darwin" { + systemTray.SetTemplateIcon(icons.SystrayMacTemplate) + } + + systemTray.AttachWindow(window).WindowOffset(5) + + go func() { + for { + now := time.Now().Format(time.RFC1123) + app.Event.Emit("time", now) + time.Sleep(time.Second) + } + }() + + if err := app.Run(); err != nil { + log.Fatal(err) } } From 926a11d1b16b66f4859d409e5b1761c42e088d8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enzo=20Guti=C3=A9rrez=20Pereira?= Date: Sat, 11 Jul 2026 18:10:02 -0300 Subject: [PATCH 4/7] tray uses bun instead of npm --- internal/gui/Taskfile.yml | 2 +- internal/gui/frontend/package-lock.json | 425 ------------------------ 2 files changed, 1 insertion(+), 426 deletions(-) delete mode 100644 internal/gui/frontend/package-lock.json diff --git a/internal/gui/Taskfile.yml b/internal/gui/Taskfile.yml index 738d69c..f547a5d 100644 --- a/internal/gui/Taskfile.yml +++ b/internal/gui/Taskfile.yml @@ -3,7 +3,7 @@ version: '3' vars: APP_NAME: "gui" BIN_DIR: "bin" - PACKAGE_MANAGER: '{{.PACKAGE_MANAGER | default "npm"}}' + PACKAGE_MANAGER: '{{.PACKAGE_MANAGER | default "bun"}}' VITE_PORT: '{{.WAILS_VITE_PORT | default 9245}}' # Target OS for build/package/run. Defaults to the host OS, and is overridden # by `wails3 build GOOS=...` (or the GOOS env var) for cross-compilation. The diff --git a/internal/gui/frontend/package-lock.json b/internal/gui/frontend/package-lock.json deleted file mode 100644 index 132c34e..0000000 --- a/internal/gui/frontend/package-lock.json +++ /dev/null @@ -1,425 +0,0 @@ -{ - "name": "react-ts-latest", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "react-ts-latest", - "version": "0.0.0", - "dependencies": { - "@wailsio/runtime": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "devDependencies": { - "@types/react": "^18.2.43", - "@types/react-dom": "^18.2.17", - "@vitejs/plugin-react": "^6.0.0", - "typescript": "^5.2.2", - "vite": "^8.0.5" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.139.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.31", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.2.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.7", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^18.0.0" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "6.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@rolldown/pluginutils": "^1.0.1" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", - "babel-plugin-react-compiler": "^1.0.0", - "vite": "^8.0.0" - }, - "peerDependenciesMeta": { - "@rolldown/plugin-babel": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - } - } - }, - "node_modules/@wailsio/runtime": { - "version": "3.0.0-alpha.97", - "resolved": "https://registry.npmjs.org/@wailsio/runtime/-/runtime-3.0.0-alpha.97.tgz", - "integrity": "sha512-alvEG6B0YqW7AcBcNaUWNMD9q8JWqx5AO6BPOZpijBeq4ZjhQxSom3jvvq8Z1mWSMKPEjSvlFirKIh9NLI3ajA==", - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/fdir": { - "version": "6.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.15", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.17", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/react": { - "version": "18.3.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/rolldown": { - "version": "1.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.139.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/vite": { - "version": "8.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", - "tinyglobby": "^0.2.17" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - } - } -} From 52292c919dddd987eaa07e7c5f31dd02607c61bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enzo=20Guti=C3=A9rrez=20Pereira?= Date: Sun, 12 Jul 2026 21:44:52 -0300 Subject: [PATCH 5/7] tray in 'stable' version i guess? --- Makefile | 5 +- .../blindspot/internal/gui/greetservice.ts | 10 - .../neozmmv/blindspot/internal/gui/index.js | 13 + .../neozmmv/blindspot/internal/gui/index.ts | 7 - .../neozmmv/blindspot/internal/gui/models.js | 123 ++++ .../blindspot/internal/gui/trayservice.js | 111 ++++ .../wailsapp/wails/v3/internal/eventcreate.js | 22 + .../wailsapp/wails/v3/internal/eventcreate.ts | 9 - .../wailsapp/wails/v3/internal/eventdata.d.ts | 6 +- internal/gui/frontend/index.html | 3 +- internal/gui/frontend/public/style.css | 540 +++++++----------- internal/gui/frontend/src/App.tsx | 339 +++++++---- internal/gui/greetservice.go | 7 - internal/gui/main.go | 84 ++- internal/gui/proc_other.go | 22 + internal/gui/proc_windows.go | 31 + internal/gui/trayservice.go | 372 ++++++++++++ main.go | 15 +- public/BLINDSPOT.ico | Bin 0 -> 26169 bytes public/BLINDSPOT_tray.png | Bin 0 -> 26147 bytes 20 files changed, 1228 insertions(+), 491 deletions(-) delete mode 100644 internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/greetservice.ts create mode 100644 internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.js delete mode 100644 internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.ts create mode 100644 internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/models.js create mode 100644 internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/trayservice.js create mode 100644 internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.js delete mode 100644 internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.ts delete mode 100644 internal/gui/greetservice.go create mode 100644 internal/gui/proc_other.go create mode 100644 internal/gui/proc_windows.go create mode 100644 internal/gui/trayservice.go create mode 100644 public/BLINDSPOT.ico create mode 100644 public/BLINDSPOT_tray.png diff --git a/Makefile b/Makefile index 5edcf52..82a3c6f 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,11 @@ VERSION=$(shell git describe --tags --abbrev=0) .PHONY: build build-win build-linux +# -H windowsgui builds a GUI-subsystem binary so double-clicking launches the tray +# without a console window. CLI use still works: main.go calls AttachToParentConsole +# when launched from an existing terminal. build-win: - GOOS=windows GOARCH=amd64 go build -ldflags="-X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY).exe . + GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui -X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY).exe . build-linux: GOOS=linux GOARCH=amd64 go build -ldflags="-X github.com/neozmmv/blindspot/cmd.Version=$(VERSION)" -o dist/$(BINARY)-linux-amd64 . diff --git a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/greetservice.ts b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/greetservice.ts deleted file mode 100644 index 760195a..0000000 --- a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/greetservice.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime"; - -export function Greet(name: string): $CancellablePromise { - return $Call.ByID(1411160069, name); -} diff --git a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.js b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.js new file mode 100644 index 0000000..e934bff --- /dev/null +++ b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.js @@ -0,0 +1,13 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as TrayService from "./trayservice.js"; +export { + TrayService +}; + +export { + Peer, + Status +} from "./models.js"; diff --git a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.ts b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.ts deleted file mode 100644 index 50e3f04..0000000 --- a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL -// This file is automatically generated. DO NOT EDIT - -import * as GreetService from "./greetservice.js"; -export { - GreetService -}; diff --git a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/models.js b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/models.js new file mode 100644 index 0000000..b7f2bb2 --- /dev/null +++ b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/models.js @@ -0,0 +1,123 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Create as $Create } from "@wailsio/runtime"; + +/** + * Peer is one connected member of the active session. + */ +export class Peer { + /** + * Creates a new Peer instance. + * @param {Partial} [$$source = {}] - The source object to create the Peer. + */ + constructor($$source = {}) { + if (!("virtualIP" in $$source)) { + /** + * @member + * @type {string} + */ + this["virtualIP"] = ""; + } + if (!("publicAddr" in $$source)) { + /** + * @member + * @type {string} + */ + this["publicAddr"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Peer instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Peer} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Peer(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * Status is the snapshot pushed to the frontend, both on request and via the + * periodic "status" event. + */ +export class Status { + /** + * Creates a new Status instance. + * @param {Partial} [$$source = {}] - The source object to create the Status. + */ + constructor($$source = {}) { + if (!("connected" in $$source)) { + /** + * @member + * @type {boolean} + */ + this["connected"] = false; + } + if (!("myIP" in $$source)) { + /** + * @member + * @type {string} + */ + this["myIP"] = ""; + } + if (!("peers" in $$source)) { + /** + * @member + * @type {Peer[]} + */ + this["peers"] = []; + } + if (!("busy" in $$source)) { + /** + * a connect/send is in flight + * @member + * @type {boolean} + */ + this["busy"] = false; + } + if (!("receiving" in $$source)) { + /** + * a receive listener is running + * @member + * @type {boolean} + */ + this["receiving"] = false; + } + if (!("transfer" in $$source)) { + /** + * latest file-transfer status line + * @member + * @type {string} + */ + this["transfer"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Status instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Status} + */ + static createFrom($$source = {}) { + const $$createField2_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("peers" in $$parsedSource) { + $$parsedSource["peers"] = $$createField2_0($$parsedSource["peers"]); + } + return new Status(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = Peer.createFrom; +const $$createType1 = $Create.Array($$createType0); diff --git a/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/trayservice.js b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/trayservice.js new file mode 100644 index 0000000..43e54af --- /dev/null +++ b/internal/gui/frontend/bindings/github.com/neozmmv/blindspot/internal/gui/trayservice.js @@ -0,0 +1,111 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * TrayService is the bridge exposed to the frontend. It wraps the same commands a + * user would run in a terminal β€” shelling out to the blindspot binary for the + * operations that need privilege elevation or long-running transfer logic + * (connect / send / receive), and reading the on-disk session state directly for + * everything else. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "@wailsio/runtime"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * CancelReceive kills a pending `receive` process, if one is running. + * @returns {$CancellablePromise} + */ +export function CancelReceive() { + return $Call.ByID(3816120566); +} + +/** + * Connect runs `blindspot connect -s -p [-n]`, which triggers + * the UAC elevation + daemon launch and blocks until the session is up (or fails). + * It returns the final status line the CLI printed. + * @param {string} session + * @param {string} password + * @param {boolean} isNew + * @returns {$CancellablePromise} + */ +export function Connect(session, password, isNew) { + return $Call.ByID(1698713851, session, password, isNew); +} + +/** + * Disconnect signals the running daemon to stop (the same mechanism as + * `blindspot disconnect`) and waits briefly for it to tear down. + * @returns {$CancellablePromise} + */ +export function Disconnect() { + return $Call.ByID(1465381917); +} + +/** + * GetStatus returns the current session snapshot. + * @returns {$CancellablePromise<$models.Status>} + */ +export function GetStatus() { + return $Call.ByID(3800095171).then(/** @type {($result: any) => any} */(($result) => { + return $$createType0($result); + })); +} + +/** + * MyIP returns this device's virtual IP, derived from the (cleartext) public key. + * Works even when the identity is encrypted at rest. Empty if no identity exists. + * @returns {$CancellablePromise} + */ +export function MyIP() { + return $Call.ByID(3702040876); +} + +/** + * SelectFile opens a native file picker and returns the chosen path (empty if the + * user cancelled). + * @returns {$CancellablePromise} + */ +export function SelectFile() { + return $Call.ByID(3517471721); +} + +/** + * SendFile runs `blindspot send ` and returns the CLI's final + * line. Blocks for the duration of the transfer. + * @param {string} peerIP + * @param {string} filePath + * @returns {$CancellablePromise} + */ +export function SendFile(peerIP, filePath) { + return $Call.ByID(1125472359, peerIP, filePath); +} + +/** + * StartReceive launches `blindspot receive` in the background so the tray can keep + * serving while it waits for an incoming file. Progress lines are streamed into the + * transfer status and pushed to the frontend. + * @param {boolean} here + * @returns {$CancellablePromise} + */ +export function StartReceive(here) { + return $Call.ByID(1268368826, here); +} + +/** + * Version returns the blindspot version string. + * @returns {$CancellablePromise} + */ +export function Version() { + return $Call.ByID(449630457); +} + +// Private type creation functions +const $$createType0 = $models.Status.createFrom; diff --git a/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.js b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.js new file mode 100644 index 0000000..f14e7dc --- /dev/null +++ b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.js @@ -0,0 +1,22 @@ +//@ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Create as $Create } from "@wailsio/runtime"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as gui$0 from "../../../../neozmmv/blindspot/internal/gui/models.js"; + +function configure() { + Object.freeze(Object.assign($Create.Events, { + "status": $$createType0, + })); +} + +// Private type creation functions +const $$createType0 = gui$0.Status.createFrom; + +configure(); diff --git a/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.ts b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.ts deleted file mode 100644 index 1ea1058..0000000 --- a/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventcreate.ts +++ /dev/null @@ -1,9 +0,0 @@ -//@ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Γ‚ MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import { Create as $Create } from "@wailsio/runtime"; - -Object.freeze($Create.Events); diff --git a/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index 793ee3e..8fad456 100644 --- a/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/internal/gui/frontend/bindings/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -5,10 +5,14 @@ // @ts-ignore: Unused imports import type { Events } from "@wailsio/runtime"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import type * as gui$0 from "../../../../neozmmv/blindspot/internal/gui/models.js"; + declare module "@wailsio/runtime" { namespace Events { interface CustomEvents { - "time": string; + "status": gui$0.Status; } } } diff --git a/internal/gui/frontend/index.html b/internal/gui/frontend/index.html index 3ede8b4..dc36bd3 100644 --- a/internal/gui/frontend/index.html +++ b/internal/gui/frontend/index.html @@ -5,10 +5,9 @@ - Wails + React + TS + Blindspot -

diff --git a/internal/gui/frontend/public/style.css b/internal/gui/frontend/public/style.css index 39fce74..b9a624c 100644 --- a/internal/gui/frontend/public/style.css +++ b/internal/gui/frontend/public/style.css @@ -1,368 +1,262 @@ :root { - /* Neon-night design tokens. */ - --ink: #06070f; /* darkest base behind the image */ - --text: #f4f6fb; - --muted: #9aa6c0; - --accent: #ff4d4d; /* Wails red */ - --accent-2: #ff2d72; /* pink, used in gradients */ - --glass: rgba(255, 255, 255, 0.05); - --glass-strong: rgba(255, 255, 255, 0.08); - --glass-border: rgba(255, 255, 255, 0.12); - --radius: 11px; - --grad: linear-gradient(135deg, #ff5a4d 0%, #ff2d72 100%); - - /* Golden-ratio spacing scale (Ο† β‰ˆ 1.618), used for the vertical rhythm. */ - --s-1: 0.618rem; /* φ⁻¹ */ - --s-2: 1rem; - --s-3: 1.618rem; /* Ο† */ - --s-4: 2.618rem; /* φ² */ - --s-5: 4.236rem; /* φ³ */ - - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; - color-scheme: dark; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; + --bg: #06070f; + --panel: rgba(255, 255, 255, 0.04); + --panel-border: rgba(255, 255, 255, 0.08); + --text: #e7e9f3; + --muted: #8b90a6; + --accent: #6d8bff; + --accent-press: #5a76ee; + --success: #35d07f; + --danger: #ff5c6c; + --field: rgba(255, 255, 255, 0.05); + --field-border: rgba(255, 255, 255, 0.12); + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; } * { box-sizing: border-box; } -html { - background: var(--ink); -} html, body { - margin: 0; - color: var(--text); -} -body { - overflow-x: hidden; - /* Nothing in the chrome is selectable (it's an app, not a document); the - text input opts back in below. */ - -webkit-user-select: none; - user-select: none; - /* Drag the window by its background. Interactive controls opt out with - --wails-draggable: no-drag (the property inherits). */ - --wails-draggable: drag; + margin: 0; + padding: 0; + height: 100%; + background: var(--bg); + color: var(--text); + -webkit-font-smoothing: antialiased; } -/* Framework mount nodes (#app / #root) shouldn't affect layout, so the - body flex centering applies directly to .container. */ -#app, #root { display: contents; } +#root { height: 100%; } -/* Interactive elements: clickable (not draggable) and, for the input, selectable. */ -.brand-mark, .brand-badge, .input-box, .btn, .footer-docs, .toast { - --wails-draggable: no-drag; -} -.input, input[type="text"] { - -webkit-user-select: text; - user-select: text; +.app { + display: flex; + flex-direction: column; + height: 100vh; + background: + radial-gradient(120% 80% at 100% 0%, rgba(109, 139, 255, 0.12), transparent 55%), + radial-gradient(90% 60% at 0% 100%, rgba(53, 208, 127, 0.08), transparent 60%), + var(--bg); } -/* ----- Background layer ---------------------------------------------------- - A fixed, full-viewport layer rather than `background-attachment: fixed` - (which iOS WKWebView ignores / renders janky). A dark gradient is layered - over the photo so foreground text stays legible. On desktop the gradient is - weighted to the left, where the content sits. */ -.bg { - position: fixed; - inset: 0; - z-index: -1; - background: - linear-gradient(90deg, rgba(6, 7, 15, 0.94) 0%, rgba(6, 7, 15, 0.78) 32%, - rgba(6, 7, 15, 0.42) 64%, rgba(6, 7, 15, 0.30) 100%), - linear-gradient(0deg, rgba(6, 7, 15, 0.70) 0%, rgba(6, 7, 15, 0.10) 45%), - url("/bg-desktop.jpg") center / cover no-repeat; +/* ---- top bar ---- */ +.topbar { + display: flex; + align-items: center; + justify-content: space-between; + padding: 14px 16px 10px; + --wails-draggable: drag; } -body { - min-height: 100vh; - min-height: 100dvh; - display: flex; - flex-direction: column; /* content area + footer pinned to the bottom */ - /* Respect mobile safe areas (notch / home indicator). No bottom padding: - the footer sits flush at the bottom edge. */ - /* Wider outer margins on the golden scale (φ² top/right, φ³ left). */ - padding: max(var(--s-4), env(safe-area-inset-top)) max(var(--s-4), env(safe-area-inset-right)) - 0 max(var(--s-5), env(safe-area-inset-left)); -} +.brand { display: flex; align-items: center; gap: 8px; } -.container { - flex: 1 0 auto; /* fill the space above the footer */ - width: 100%; - max-width: 540px; - display: flex; - flex-direction: column; - justify-content: center; /* vertically centre the content */ - align-items: flex-start; - text-align: left; +.dot-logo { + width: 12px; + height: 12px; + border-radius: 50%; + background: radial-gradient(circle at 30% 30%, #fff, var(--accent) 70%); + box-shadow: 0 0 12px rgba(109, 139, 255, 0.7); } -/* ----- Brand row ----------------------------------------------------------- */ -.brand { - display: flex; - align-items: center; - gap: var(--s-2); - /* No top margin β€” the content block is vertically centred, so an extra top - margin would push everything (incl. the input) down. φ² gap below. */ - margin-bottom: var(--s-4); +.brand-name { + font-weight: 600; + letter-spacing: 0.02em; + font-size: 15px; } -.brand-mark, .brand-badge { - display: inline-flex; - align-items: center; - justify-content: center; - cursor: pointer; - transition: transform 0.2s ease, filter 0.2s ease; + +.pill { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 12px; + font-weight: 600; + padding: 5px 10px; + border-radius: 999px; + border: 1px solid var(--panel-border); } -.brand-mark:hover, .brand-badge:hover { - transform: translateY(-2px); - filter: drop-shadow(0 0 1em rgba(255, 77, 77, 0.45)); + +.pill-dot { width: 7px; height: 7px; border-radius: 50%; } +.pill-on { color: var(--success); background: rgba(53, 208, 127, 0.1); } +.pill-on .pill-dot { background: var(--success); box-shadow: 0 0 8px var(--success); } +.pill-off { color: var(--muted); background: rgba(255, 255, 255, 0.04); } +.pill-off .pill-dot { background: var(--muted); } + +/* ---- body ---- */ +.body { + flex: 1; + overflow-y: auto; + padding: 6px 16px 16px; + display: flex; + flex-direction: column; + gap: 12px; } -/* Logo heights sit on the golden scale (φ³ = 4.236rem). The Wails mark carries - its wordmark, so the badge is one golden step smaller (φ³ Γ· βˆšΟ†) to keep the - pair visually balanced. */ -.brand-logo { height: var(--s-5); width: auto; display: block; object-fit: contain; } -.brand-badge img { height: calc(var(--s-5) / 1.272); width: auto; display: block; object-fit: contain; } -/* ----- Version badge ------------------------------------------------------- */ -.badge { - display: inline-block; - padding: 4px 12px; - margin-bottom: 1.1rem; - font-size: 12px; - font-weight: 700; - letter-spacing: 0.02em; - color: #ff7a8f; - background: rgba(255, 45, 114, 0.14); - border: 1px solid rgba(255, 45, 114, 0.32); - border-radius: 999px; +.card { + background: var(--panel); + border: 1px solid var(--panel-border); + border-radius: 14px; + padding: 14px; + display: flex; + flex-direction: column; + gap: 10px; } -/* ----- Heading ------------------------------------------------------------- */ -.title { - margin: 0 0 var(--s-2); - max-width: 100%; - font-size: clamp(2.5rem, 7.5vw, 3.7rem); - line-height: 1.05; - font-weight: 800; - letter-spacing: -0.02em; - color: var(--text); - overflow-wrap: break-word; +.label { + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.08em; + color: var(--muted); + font-weight: 600; } -.title-accent { - background: var(--grad); - -webkit-background-clip: text; - background-clip: text; - -webkit-text-fill-color: transparent; - color: transparent; + +.sublabel { + font-size: 12px; + font-weight: 600; + color: var(--text); + margin-bottom: 6px; } -/* The framework word ("JavaScript") crossfades to the entered name on Greet: - the outgoing word is taken out of flow and fades out while the incoming word - fades in over the same spot. */ -.title-name { position: relative; display: inline-block; } -.title-name-text { - display: inline-block; - transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 0.68, 0.2, 1); +.row-between { display: flex; align-items: center; justify-content: space-between; gap: 10px; } + +.myip { + font-family: 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace; + font-size: 20px; + font-weight: 600; + margin-top: 4px; } -.title-name-text.is-outgoing { position: absolute; left: 0; top: 0; } -.title-name-text.is-entering { opacity: 0; transform: translateY(0.3em); } /* rises in from below */ -.title-name-text.is-leaving { opacity: 0; transform: translateY(-0.3em); } /* lifts out upward */ -.subtitle { - margin: 0 0 var(--s-5); - max-width: 32rem; - color: var(--muted); - font-size: clamp(1.05rem, 2.9vw, 1.2rem); - line-height: 1.55; +/* ---- peers ---- */ +.peers { display: flex; flex-direction: column; gap: 6px; } +.count { + display: inline-block; + min-width: 18px; + text-align: center; + padding: 0 6px; + margin-left: 4px; + border-radius: 999px; + background: rgba(109, 139, 255, 0.18); + color: var(--accent); +} +.empty { color: var(--muted); font-size: 13px; padding: 4px 0; } +.peer-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; } +.peer { + display: flex; + justify-content: space-between; + align-items: center; + gap: 8px; + padding: 8px 10px; + border-radius: 8px; + background: rgba(255, 255, 255, 0.03); + font-size: 13px; } +.peer-ip { font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 600; } +.peer-addr { color: var(--muted); font-size: 12px; } -/* ----- Greet input + button ------------------------------------------------ */ -/* Input row and the card below it are sized down so they sit more compact - under the heading. */ -.greet { width: 62%; } +/* ---- inputs ---- */ +.input { + width: 100%; + padding: 10px 12px; + border-radius: 10px; + border: 1px solid var(--field-border); + background: var(--field); + color: var(--text); + font-size: 14px; + outline: none; + transition: border-color 0.15s, box-shadow 0.15s; +} +.input::placeholder { color: var(--muted); } +.input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(109, 139, 255, 0.18); } -/* Input font is pinned at 16px: iOS Safari/WKWebView zooms the page when an - input under 16px gains focus, so the whole control is sized around that. - Tight vertical padding keeps it ~36px tall, icon : control β‰ˆ 1 : Ο†. */ -.input-box { - display: flex; - align-items: center; - gap: 7px; - width: 100%; - padding: 4px 5px 4px 11px; - background: var(--glass); - border: 1px solid var(--glass-border); - border-radius: var(--radius); - -webkit-backdrop-filter: blur(12px); - backdrop-filter: blur(12px); - transition: border-color 0.2s ease; +.check { + display: flex; + align-items: center; + gap: 8px; + font-size: 12.5px; + color: var(--muted); + cursor: pointer; } -.input-box:focus-within { border-color: rgba(255, 77, 77, 0.55); } +.check input { accent-color: var(--accent); width: 15px; height: 15px; } -.input-icon { - width: 23px; - height: 23px; - flex: 0 0 auto; - color: var(--muted); +.subgroup { + padding-top: 6px; + border-top: 1px solid var(--panel-border); + display: flex; + flex-direction: column; + gap: 8px; } +.subgroup:first-of-type { border-top: none; padding-top: 0; } -.input, -input[type="text"] { - flex: 1; - min-width: 0; - background: transparent; - border: none; - color: var(--text); - font-size: 16px; - padding: 5px 2px; - outline: none; +.file-row { display: flex; align-items: center; gap: 10px; } +.file-name { + font-size: 12.5px; + color: var(--muted); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } -.input::placeholder { color: rgba(154, 166, 192, 0.7); } +/* ---- buttons ---- */ .btn { - flex: 0 0 auto; - display: inline-flex; - align-items: center; - gap: 5px; - border: none; - background: var(--grad); - color: #fff; - padding: 6px 15px; - border-radius: 8px; - font-size: 14px; - font-weight: 600; - cursor: pointer; - box-shadow: 0 6px 18px rgba(255, 45, 114, 0.35); - transition: transform 0.1s ease, box-shadow 0.2s ease, opacity 0.2s ease; + appearance: none; + border: 1px solid var(--field-border); + background: var(--field); + color: var(--text); + font-size: 13.5px; + font-weight: 600; + padding: 9px 14px; + border-radius: 10px; + cursor: pointer; + transition: background 0.15s, border-color 0.15s, transform 0.05s, opacity 0.15s; } -.btn svg { width: 17px; height: 17px; } -.btn:hover { box-shadow: 0 8px 24px rgba(255, 45, 114, 0.5); } -.btn:active { transform: scale(0.97); } +.btn:hover { background: rgba(255, 255, 255, 0.09); } +.btn:active { transform: translateY(1px); } +.btn:disabled { opacity: 0.45; cursor: not-allowed; } +.btn.full { width: 100%; } -/* ----- Toast (the reply from Go) ------------------------------------------- */ -/* Fixed overlay near the bottom, so showing the greeting never reflows the page. - The Go-blue badge makes it obvious the string was produced by the Go backend. */ -.toast { - position: fixed; - /* Top-right with an equal golden-ratio inset (Ο† = 1.618rem) on both edges, - clear of the macOS traffic lights (which are on the left). Falls back to - the notch / safe area when larger. Drops in from just above. */ - top: max(var(--s-3), env(safe-area-inset-top)); - right: max(var(--s-3), env(safe-area-inset-right)); - z-index: 20; - display: inline-flex; - flex-direction: column; - align-items: flex-start; - gap: 3px; - max-width: min(86vw, 420px); - padding: 11px 16px; - background: rgba(13, 17, 28, 0.72); - border: 1px solid var(--glass-border); - border-radius: 14px; - -webkit-backdrop-filter: blur(16px); - backdrop-filter: blur(16px); - box-shadow: 0 16px 44px rgba(0, 0, 0, 0.45); - color: var(--text); - font-size: 15px; - line-height: 1.45; - opacity: 0; - pointer-events: none; - transform: translateY(-16px); - transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1); -} -.toast.is-visible { - opacity: 1; - transform: translateY(0); -} -/* Muted, on-palette label so it's clear the string came from the Go backend. */ -.toast-label { - font-size: 10.5px; - font-weight: 700; - letter-spacing: 0.09em; - text-transform: uppercase; - color: var(--muted); +.btn.primary { background: var(--accent); border-color: transparent; color: #0a0c18; } +.btn.primary:hover { background: var(--accent-press); } + +.btn.danger { color: var(--danger); border-color: rgba(255, 92, 108, 0.35); background: rgba(255, 92, 108, 0.08); } +.btn.danger:hover { background: rgba(255, 92, 108, 0.16); } + +.btn.ghost { background: transparent; } + +.hint { font-size: 11.5px; color: var(--muted); margin: 2px 0 0; line-height: 1.4; } + +.transfer { + margin-top: 2px; + padding: 9px 11px; + border-radius: 9px; + background: rgba(109, 139, 255, 0.1); + border: 1px solid rgba(109, 139, 255, 0.2); + font-size: 12.5px; + color: var(--text); + word-break: break-word; } -.toast-msg { min-width: 0; } -/* ----- Footer -------------------------------------------------------------- */ -/* Thin bar pinned to the bottom: version far-left, live clock centered. */ -.footer-divider { - width: 100%; - height: 0; - border: none; - border-top: 1px solid rgba(255, 255, 255, 0.1); - margin: 0; +/* ---- notice toast ---- */ +.notice { + position: fixed; + left: 16px; + right: 16px; + bottom: 40px; + padding: 11px 14px; + border-radius: 10px; + background: rgba(20, 22, 34, 0.96); + border: 1px solid var(--panel-border); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); + font-size: 13px; + line-height: 1.4; + word-break: break-word; + animation: rise 0.18s ease-out; } +@keyframes rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } } + +/* ---- footer ---- */ .footer { - display: grid; - grid-template-columns: 1fr auto 1fr; /* version | clock | spacer */ - align-items: center; - width: 100%; - /* keep the bar off the very edge and clear of the home indicator */ - padding: 11px max(0.5rem, env(safe-area-inset-right)) - max(11px, env(safe-area-inset-bottom)) 0; - color: var(--muted); - font-size: 12.5px; -} -.footer-version { - justify-self: start; - display: inline-flex; - align-items: center; - gap: 7px; - white-space: nowrap; -} -.footer-time { - justify-self: center; - display: inline-flex; - align-items: center; - gap: 7px; -} -.footer-time svg { width: 19px; height: 19px; opacity: 0.85; } -.footer-docs { - justify-self: end; - display: inline-flex; - align-items: center; - gap: 5px; - color: var(--muted); - text-decoration: none; - cursor: pointer; - white-space: nowrap; - transition: color 0.2s ease; -} -.footer-docs:hover { color: var(--text); } -.footer-docs svg { width: 17px; height: 17px; } -.dot { - width: 8px; - height: 8px; - border-radius: 50%; - background: var(--accent); - box-shadow: 0 0 8px var(--accent); + padding: 8px 16px; + border-top: 1px solid var(--panel-border); + font-size: 11px; + color: var(--muted); + text-align: center; } -/* ----- Mobile -------------------------------------------------------------- */ -@media (max-width: 640px) { - .bg { - background: - linear-gradient(0deg, rgba(6, 7, 15, 0.92) 0%, rgba(6, 7, 15, 0.55) 40%, - rgba(6, 7, 15, 0.45) 100%), - url("/bg-mobile.jpg") center / cover no-repeat; - } - .container { align-items: center; text-align: center; margin: 0 auto; } - /* Stack the title onto two lines ("Wails +" / "Javascript") like the target. */ - .title-accent { display: block; } - .subtitle { margin-left: auto; margin-right: auto; } - /* A touch more width back on small screens so the input stays usable. */ - .greet { width: 86%; } - /* Trim the surround on a phone, but keep the input at 16px (iOS focus-zoom - guard) β€” only the padding/button/icon shrink, not the field's text. */ - .input-box { padding: 3px 4px 3px 10px; gap: 6px; } - .input-icon { width: 21px; height: 21px; } - .input { font-size: 16px; padding: 4px 2px; } - .btn { padding: 5px 13px; font-size: 14px; gap: 5px; } - .btn svg { width: 16px; height: 16px; } - /* Three items (version / clock / docs) share a narrow row β€” shrink to fit. */ - .footer { font-size: 11px; gap: 4px; } - .footer-time { gap: 5px; } - .footer-time svg { width: 13px; height: 13px; } -} +::-webkit-scrollbar { width: 8px; } +::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); border-radius: 8px; } diff --git a/internal/gui/frontend/src/App.tsx b/internal/gui/frontend/src/App.tsx index 5c5061c..0014dee 100644 --- a/internal/gui/frontend/src/App.tsx +++ b/internal/gui/frontend/src/App.tsx @@ -1,120 +1,257 @@ -import { useState, useEffect, useRef } from 'react' -import {Events, WML} from "@wailsio/runtime"; -import {GreetService} from "../bindings/github.com/neozmmv/blindspot/internal/gui"; +import { useState, useEffect, useCallback } from 'react' +import { Events } from '@wailsio/runtime' +import { TrayService } from '../bindings/github.com/neozmmv/blindspot/internal/gui' -// Show the actual Wails version this project was generated against. -const wailsVersion = "v3.0.0-alpha2.117"; +interface Peer { + virtualIP: string + publicAddr: string +} + +interface Status { + connected: boolean + myIP: string + peers: Peer[] + busy: boolean + receiving: boolean + transfer: string +} + +const emptyStatus: Status = { + connected: false, + myIP: '', + peers: [], + busy: false, + receiving: false, + transfer: '', +} function App() { - const [name, setName] = useState(''); - const [time, setTime] = useState('Listening for Time event...'); - - const titleNameRef = useRef(null); - const toastRef = useRef(null); - const resultRef = useRef(null); - const toastTimer = useRef | undefined>(undefined); - - // Crossfade the framework word in the heading ("Wails + React") to the name - // the user entered ("Wails + "): the old word fades out while the new one - // fades in over the same spot. - const swapTitleName = (name: string) => { - const titleNameElement = titleNameRef.current; - if (!titleNameElement) { - return; + const [status, setStatus] = useState(emptyStatus) + const [version, setVersion] = useState('') + const [notice, setNotice] = useState('') + + // connect form + const [session, setSession] = useState('') + const [password, setPassword] = useState('') + const [isNew, setIsNew] = useState(false) + + // send form + const [peerIP, setPeerIP] = useState('') + const [filePath, setFilePath] = useState('') + const [saveHere, setSaveHere] = useState(false) + + const [copied, setCopied] = useState(false) + + const refresh = useCallback(async () => { + try { + const s = await TrayService.GetStatus() + setStatus(s as Status) + } catch (e) { + console.error(e) } - const current = titleNameElement.querySelector('.title-name-text:not(.is-outgoing)'); - if (!current || current.textContent === name) { - return; + }, []) + + useEffect(() => { + refresh() + TrayService.Version().then(setVersion).catch(() => {}) + const off = Events.On('status', (ev: any) => { + if (ev?.data) setStatus(ev.data as Status) + }) + return () => { off?.() } + }, [refresh]) + + const flash = (msg: string) => { + setNotice(msg) + window.clearTimeout((flash as any)._t) + ;(flash as any)._t = window.setTimeout(() => setNotice(''), 5000) + } + + const doConnect = async () => { + setNotice('') + try { + const msg = await TrayService.Connect(session, password, isNew) + flash(msg || 'Connected.') + setPassword('') + } catch (e: any) { + flash(String(e?.message ?? e)) } - const incoming = document.createElement('span'); - incoming.className = 'title-name-text is-entering'; - incoming.textContent = name; - current.classList.add('is-outgoing'); - titleNameElement.appendChild(incoming); - // Force a reflow so the transitions run from the starting state. - void incoming.offsetWidth; - incoming.classList.remove('is-entering'); - current.classList.add('is-leaving'); - current.addEventListener('transitionend', () => current.remove(), {once: true}); - }; - - // Pop the toast with the message Go returned, then auto-dismiss it. - const showToast = (message: string) => { - if (resultRef.current) { - resultRef.current.innerText = message; + } + + const doDisconnect = async () => { + try { + const msg = await TrayService.Disconnect() + flash(msg) + } catch (e: any) { + flash(String(e?.message ?? e)) } - if (toastRef.current) { - toastRef.current.classList.add('is-visible'); + } + + const copyIP = async () => { + if (!status.myIP) return + try { + await navigator.clipboard.writeText(status.myIP) + setCopied(true) + window.setTimeout(() => setCopied(false), 1200) + } catch { /* clipboard blocked */ } + } + + const chooseFile = async () => { + try { + const path = await TrayService.SelectFile() + if (path) setFilePath(path) + } catch (e: any) { + flash(String(e?.message ?? e)) } - clearTimeout(toastTimer.current); - toastTimer.current = setTimeout(() => { - if (toastRef.current) { - toastRef.current.classList.remove('is-visible'); - } - }, 4000); - }; - - const doGreet = () => { - let n = name || 'anonymous'; - swapTitleName(n); - GreetService.Greet(n).then(showToast).catch(console.error); - }; + } - useEffect(() => { - Events.On('time', (timeValue: any) => { - // On a narrow screen the full RFC1123 stamp is too wide for the footer, so - // show just the clock time there (matching the CSS breakpoint). - const full = timeValue.data; - const compact = (full.match(/\d{1,2}:\d{2}:\d{2}/) || [full])[0]; - setTime(window.matchMedia('(max-width: 640px)').matches ? compact : full); - }); - // Reload WML so it picks up the wml tags - WML.Reload(); - }, []); + const doSend = async () => { + try { + const msg = await TrayService.SendFile(peerIP, filePath) + flash(msg) + } catch (e: any) { + flash(String(e?.message ?? e)) + } + } + + const doReceive = async () => { + try { + await TrayService.StartReceive(saveHere) + } catch (e: any) { + flash(String(e?.message ?? e)) + } + } + + const cancelReceive = async () => { + try { await TrayService.CancelReceive() } catch { /* ignore */ } + } + + const fileName = filePath ? filePath.replace(/^.*[\\/]/, '') : '' return ( - <> -
-
- - Wails logo - - - React logo - -
- -

Wails + React

-

Build beautiful cross-platform apps with Go and React.

- -
-
- - setName(e.target.value)} type="text" placeholder="Your name" autoComplete="off"/> - +
+ +
+
+ Peers {status.peers.length} +
+ {status.peers.length === 0 ? ( +
No peers connected yet.
+ ) : ( +
    + {status.peers.map((p) => ( +
  • + {p.virtualIP} + {p.publicAddr} +
  • + ))} +
+ )} +
+ + + + ) : ( +
+
Join or create a session
+ setSession(e.target.value)} + autoComplete="off" + /> + setPassword(e.target.value)} + autoComplete="off" + /> + + +

Connecting prompts for administrator access to set up the VPN adapter.

+
+ )} + +
+
File transfer
+ +
+
Send
+ setPeerIP(e.target.value)} + autoComplete="off" + /> +
+ + {fileName || 'No file selected'} +
+
-
+ +
+
Receive
+ + {status.receiving ? ( + + ) : ( + + )} +
+ + {status.transfer &&
{status.transfer}
} +
-
+ {notice &&
{notice}
} +
- {wailsVersion} - - - {time} - - Docs - - + {version || 'blindspot'}
- -
- From Go - -
- +