This commit is contained in:
Ren Amamiya 2023-10-09 15:17:15 +07:00
parent 140b8a47bf
commit 8930300fb5
45 changed files with 606 additions and 740 deletions

View File

@ -18,10 +18,10 @@
"**/*.{ts, tsx, css, md, html, json}": "prettier --cache --write" "**/*.{ts, tsx, css, md, html, json}": "prettier --cache --write"
}, },
"dependencies": { "dependencies": {
"@fontsource-variable/inter": "^5.0.12", "@fontsource-variable/inter": "^5.0.13",
"@getalby/sdk": "^2.4.0", "@getalby/sdk": "^2.4.0",
"@nostr-dev-kit/ndk": "^1.3.1", "@nostr-dev-kit/ndk": "^1.3.2",
"@nostr-dev-kit/ndk-cache-dexie": "^1.3.0", "@nostr-dev-kit/ndk-cache-dexie": "^1.3.2",
"@nostr-fetch/adapter-ndk": "^0.12.2", "@nostr-fetch/adapter-ndk": "^0.12.2",
"@radix-ui/react-alert-dialog": "^1.0.5", "@radix-ui/react-alert-dialog": "^1.0.5",
"@radix-ui/react-avatar": "^1.0.4", "@radix-ui/react-avatar": "^1.0.4",
@ -31,7 +31,7 @@
"@radix-ui/react-hover-card": "^1.0.7", "@radix-ui/react-hover-card": "^1.0.7",
"@radix-ui/react-popover": "^1.0.7", "@radix-ui/react-popover": "^1.0.7",
"@radix-ui/react-tooltip": "^1.0.7", "@radix-ui/react-tooltip": "^1.0.7",
"@tanstack/react-query": "^4.35.7", "@tanstack/react-query": "^4.36.1",
"@tauri-apps/api": "2.0.0-alpha.8", "@tauri-apps/api": "2.0.0-alpha.8",
"@tauri-apps/plugin-app": "2.0.0-alpha.1", "@tauri-apps/plugin-app": "2.0.0-alpha.1",
"@tauri-apps/plugin-clipboard-manager": "2.0.0-alpha.1", "@tauri-apps/plugin-clipboard-manager": "2.0.0-alpha.1",
@ -54,7 +54,7 @@
"@tiptap/react": "^2.1.11", "@tiptap/react": "^2.1.11",
"@tiptap/starter-kit": "^2.1.11", "@tiptap/starter-kit": "^2.1.11",
"@tiptap/suggestion": "^2.1.11", "@tiptap/suggestion": "^2.1.11",
"@vidstack/react": "^1.1.7", "@vidstack/react": "^1.1.8",
"dayjs": "^1.11.10", "dayjs": "^1.11.10",
"destr": "^2.0.1", "destr": "^2.0.1",
"html-to-text": "^9.0.5", "html-to-text": "^9.0.5",
@ -74,19 +74,20 @@
"react-string-replace": "^1.1.1", "react-string-replace": "^1.1.1",
"reactflow": "^11.9.2", "reactflow": "^11.9.2",
"remark-gfm": "^3.0.1", "remark-gfm": "^3.0.1",
"tailwind-scrollbar": "^3.0.5",
"tauri-controls": "^0.2.0", "tauri-controls": "^0.2.0",
"tippy.js": "^6.3.7", "tippy.js": "^6.3.7",
"virtua": "^0.9.1", "virtua": "^0.9.1",
"zustand": "^4.4.2" "zustand": "^4.4.3"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/typography": "^0.5.10", "@tailwindcss/typography": "^0.5.10",
"@tauri-apps/cli": "2.0.0-alpha.14", "@tauri-apps/cli": "2.0.0-alpha.14",
"@trivago/prettier-plugin-sort-imports": "^4.2.0", "@trivago/prettier-plugin-sort-imports": "^4.2.0",
"@types/html-to-text": "^9.0.2", "@types/html-to-text": "^9.0.2",
"@types/node": "^20.8.2", "@types/node": "^20.8.3",
"@types/react": "^18.2.24", "@types/react": "^18.2.25",
"@types/react-dom": "^18.2.8", "@types/react-dom": "^18.2.11",
"@types/youtube-player": "^5.5.8", "@types/youtube-player": "^5.5.8",
"@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/eslint-plugin": "^6.7.4",
"@typescript-eslint/parser": "^6.7.4", "@typescript-eslint/parser": "^6.7.4",
@ -96,7 +97,7 @@
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"csstype": "^3.1.2", "csstype": "^3.1.2",
"encoding": "^0.1.13", "encoding": "^0.1.13",
"eslint": "^8.50.0", "eslint": "^8.51.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.0.0",
"eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.33.2", "eslint-plugin-react": "^7.33.2",
@ -110,7 +111,7 @@
"tailwind-merge": "^1.14.0", "tailwind-merge": "^1.14.0",
"tailwindcss": "^3.3.3", "tailwindcss": "^3.3.3",
"typescript": "^5.2.2", "typescript": "^5.2.2",
"vite": "^4.4.10", "vite": "^4.4.11",
"vite-tsconfig-paths": "^4.2.1" "vite-tsconfig-paths": "^4.2.1"
} }
} }

File diff suppressed because it is too large Load Diff

199
src-tauri/Cargo.lock generated
View File

@ -222,7 +222,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
dependencies = [ dependencies = [
"event-listener", "event-listener 2.5.3",
"futures-core", "futures-core",
] ]
@ -233,7 +233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
dependencies = [ dependencies = [
"concurrent-queue", "concurrent-queue",
"event-listener", "event-listener 2.5.3",
"futures-core", "futures-core",
] ]
@ -289,24 +289,23 @@ version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
dependencies = [ dependencies = [
"event-listener", "event-listener 2.5.3",
] ]
[[package]] [[package]]
name = "async-process" name = "async-process"
version = "1.7.0" version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
dependencies = [ dependencies = [
"async-io", "async-io",
"async-lock", "async-lock",
"autocfg", "async-signal",
"blocking", "blocking",
"cfg-if", "cfg-if",
"event-listener", "event-listener 3.0.0",
"futures-lite", "futures-lite",
"rustix 0.37.24", "rustix 0.38.17",
"signal-hook",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -318,7 +317,25 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
]
[[package]]
name = "async-signal"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1079d27511f6c038736279421774ef4ad4bdd2e300825f4a48c4cc463a57cedf"
dependencies = [
"async-io",
"async-lock",
"atomic-waker",
"cfg-if",
"futures-core",
"futures-io",
"rustix 0.38.17",
"signal-hook-registry",
"slab",
"windows-sys 0.48.0",
] ]
[[package]] [[package]]
@ -335,7 +352,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -511,9 +528,9 @@ dependencies = [
[[package]] [[package]]
name = "blocking" name = "blocking"
version = "1.4.0" version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94c4ef1f913d78636d78d538eec1f18de81e481f44b1be0a81060090530846e1" checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
dependencies = [ dependencies = [
"async-channel", "async-channel",
"async-lock", "async-lock",
@ -560,9 +577,9 @@ checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
[[package]] [[package]]
name = "byteorder" name = "byteorder"
version = "1.4.3" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]] [[package]]
name = "bytes" name = "bytes"
@ -630,9 +647,9 @@ dependencies = [
[[package]] [[package]]
name = "cargo-platform" name = "cargo-platform"
version = "0.1.3" version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" checksum = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@ -791,7 +808,7 @@ dependencies = [
"heck", "heck",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -1074,7 +1091,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [ dependencies = [
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -1160,7 +1177,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"strsim", "strsim",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -1171,7 +1188,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
dependencies = [ dependencies = [
"darling_core", "darling_core",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -1400,7 +1417,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -1411,25 +1428,14 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]] [[package]]
name = "errno" name = "errno"
version = "0.3.4" version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480" checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
dependencies = [ dependencies = [
"errno-dragonfly",
"libc", "libc",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
[[package]]
name = "errno-dragonfly"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
dependencies = [
"cc",
"libc",
]
[[package]] [[package]]
name = "error-code" name = "error-code"
version = "2.3.1" version = "2.3.1"
@ -1457,6 +1463,17 @@ version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
[[package]]
name = "event-listener"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29e56284f00d94c1bc7fd3c77027b4623c88c1f53d8d2394c6199f2921dea325"
dependencies = [
"concurrent-queue",
"parking",
"pin-project-lite",
]
[[package]] [[package]]
name = "fastrand" name = "fastrand"
version = "1.9.0" version = "1.9.0"
@ -1479,7 +1496,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"rustix 0.38.15", "rustix 0.38.17",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -1574,7 +1591,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -1690,7 +1707,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -2596,9 +2613,9 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.148" version = "0.2.149"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
[[package]] [[package]]
name = "libloading" name = "libloading"
@ -2612,9 +2629,9 @@ dependencies = [
[[package]] [[package]]
name = "libm" name = "libm"
version = "0.2.7" version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
[[package]] [[package]]
name = "libsodium-sys" name = "libsodium-sys"
@ -2668,9 +2685,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.4.8" version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db" checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
[[package]] [[package]]
name = "lock_api" name = "lock_api"
@ -3095,9 +3112,9 @@ dependencies = [
[[package]] [[package]]
name = "num-traits" name = "num-traits"
version = "0.2.16" version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
dependencies = [ dependencies = [
"autocfg", "autocfg",
"libm", "libm",
@ -3228,7 +3245,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -3679,9 +3696,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.67" version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@ -4048,14 +4065,14 @@ dependencies = [
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "0.38.15" version = "0.38.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2f9da0cbd88f9f09e7814e388301c8414c51c62aa6ce1e4b5c551d49d96e531" checksum = "f25469e9ae0f3d0047ca8b93fc56843f38e6774f0914a107ff8b41be8be8e0b7"
dependencies = [ dependencies = [
"bitflags 2.4.0", "bitflags 2.4.0",
"errno", "errno",
"libc", "libc",
"linux-raw-sys 0.4.8", "linux-raw-sys 0.4.10",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -4240,7 +4257,7 @@ checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -4262,7 +4279,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -4312,7 +4329,7 @@ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -4384,9 +4401,9 @@ dependencies = [
[[package]] [[package]]
name = "sharded-slab" name = "sharded-slab"
version = "0.1.6" version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1b21f559e07218024e7e9f90f96f601825397de0e25420135f7f952453fed0b" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
dependencies = [ dependencies = [
"lazy_static", "lazy_static",
] ]
@ -4401,16 +4418,6 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "signal-hook"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
dependencies = [
"libc",
"signal-hook-registry",
]
[[package]] [[package]]
name = "signal-hook-registry" name = "signal-hook-registry"
version = "1.4.1" version = "1.4.1"
@ -4593,7 +4600,7 @@ dependencies = [
"crossbeam-queue", "crossbeam-queue",
"dotenvy", "dotenvy",
"either", "either",
"event-listener", "event-listener 2.5.3",
"futures-channel", "futures-channel",
"futures-core", "futures-core",
"futures-intrusive", "futures-intrusive",
@ -4926,9 +4933,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.37" version = "2.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -5057,9 +5064,9 @@ checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
[[package]] [[package]]
name = "tauri" name = "tauri"
version = "2.0.0-alpha.14" version = "2.0.0-alpha.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46acc0b6d20fe3a7c27e6036d9ef52d2c28afd1b6178ffc2dd4881f9994fecd7" checksum = "cd8f1dc82ad6bf8a689b131febee60020e84193b7fdb9c21bbb344c3d9f25de4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bytes", "bytes",
@ -5106,9 +5113,9 @@ dependencies = [
[[package]] [[package]]
name = "tauri-build" name = "tauri-build"
version = "2.0.0-alpha.8" version = "2.0.0-alpha.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc47d3c84f4aeac397cd956267f3b8060c5a2dba78288a5ccf9a8b7a8c1e7025" checksum = "59048e05398d7d53e2d73d7f7fd14fbab53ec9f90f4b91e3c08f263e07ffc569"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"cargo_toml", "cargo_toml",
@ -5126,9 +5133,9 @@ dependencies = [
[[package]] [[package]]
name = "tauri-codegen" name = "tauri-codegen"
version = "2.0.0-alpha.7" version = "2.0.0-alpha.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f98a67c7ef3cb3c25de91fe1fa16cc3681997f6ec99da0a7496d6feae2ea91e" checksum = "d8acf40451edf9ccd16d110cb10e9959fec6ccca286c5cc66b859878f8aa9a7b"
dependencies = [ dependencies = [
"base64 0.21.4", "base64 0.21.4",
"brotli", "brotli",
@ -5152,9 +5159,9 @@ dependencies = [
[[package]] [[package]]
name = "tauri-macros" name = "tauri-macros"
version = "2.0.0-alpha.7" version = "2.0.0-alpha.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b01cb5f945c71e040c5d191c32598565ae26cc266a9d5d4f7dd2dc324c5cfdd0" checksum = "c7037ba4260be47f4d6dab8c781bd15910ef1d3c16c74bf3e3c47e69c250ab82"
dependencies = [ dependencies = [
"heck", "heck",
"proc-macro2", "proc-macro2",
@ -5430,14 +5437,13 @@ dependencies = [
[[package]] [[package]]
name = "tauri-runtime" name = "tauri-runtime"
version = "1.0.0-alpha.1" version = "1.0.0-alpha.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "525c4dea52547a13e58816c655bd0928f6c30026515e7b2a77166bcd984da6d0" checksum = "d34b124f7731f3981deba3b643b2f1c8eaff59f3d6929edb401e1fc929ad93df"
dependencies = [ dependencies = [
"gtk", "gtk",
"http", "http",
"jni", "jni",
"rand 0.8.5",
"raw-window-handle", "raw-window-handle",
"serde", "serde",
"serde_json", "serde_json",
@ -5450,9 +5456,9 @@ dependencies = [
[[package]] [[package]]
name = "tauri-runtime-wry" name = "tauri-runtime-wry"
version = "1.0.0-alpha.2" version = "1.0.0-alpha.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fce46e920b62699045e02db3006017d24324119189dfab2b12261aeebf98f4be" checksum = "7b94248fbaf1169c1fb085a2c43f49af3de650f6972a64d6f2bdf876c60949d5"
dependencies = [ dependencies = [
"cocoa 0.24.1", "cocoa 0.24.1",
"gtk", "gtk",
@ -5472,9 +5478,9 @@ dependencies = [
[[package]] [[package]]
name = "tauri-utils" name = "tauri-utils"
version = "2.0.0-alpha.7" version = "2.0.0-alpha.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06bcd7c6f67fd6371dcc22da7d7f26ec12c4eae26ad7bc54943bb9f35b5db302" checksum = "931ead8db578bc2f9aee6636345fe5b900cfa2b9985a1783913200fab5e607f1"
dependencies = [ dependencies = [
"brotli", "brotli",
"ctor", "ctor",
@ -5485,6 +5491,7 @@ dependencies = [
"infer", "infer",
"json-patch", "json-patch",
"kuchikiki", "kuchikiki",
"log",
"memchr", "memchr",
"phf 0.10.1", "phf 0.10.1",
"proc-macro2", "proc-macro2",
@ -5528,7 +5535,7 @@ dependencies = [
"cfg-if", "cfg-if",
"fastrand 2.0.1", "fastrand 2.0.1",
"redox_syscall 0.3.5", "redox_syscall 0.3.5",
"rustix 0.38.15", "rustix 0.38.17",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -5566,7 +5573,7 @@ checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -5658,7 +5665,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -5782,7 +5789,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -6064,7 +6071,7 @@ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -6098,7 +6105,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -6219,7 +6226,7 @@ checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]
@ -6573,9 +6580,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]] [[package]]
name = "winnow" name = "winnow"
version = "0.5.15" version = "0.5.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" checksum = "037711d82167854aff2018dfd193aa0fef5370f456732f0d5a0c59b0f1b4b907"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@ -6751,7 +6758,7 @@ dependencies = [
"byteorder", "byteorder",
"derivative", "derivative",
"enumflags2", "enumflags2",
"event-listener", "event-listener 2.5.3",
"futures-core", "futures-core",
"futures-sink", "futures-sink",
"futures-util", "futures-util",
@ -6815,7 +6822,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.37", "syn 2.0.38",
] ]
[[package]] [[package]]

View File

@ -3,22 +3,12 @@
windows_subsystem = "windows" windows_subsystem = "windows"
)] )]
#[cfg(target_os = "macos")]
#[macro_use]
extern crate objc;
use std::time::Duration; use std::time::Duration;
use tauri::{Manager, WindowEvent}; use tauri::{Manager, WindowEvent};
use tauri_plugin_autostart::MacosLauncher; use tauri_plugin_autostart::MacosLauncher;
use tauri_plugin_sql::{Migration, MigrationKind}; use tauri_plugin_sql::{Migration, MigrationKind};
use webpage::{Webpage, WebpageOptions}; use webpage::{Webpage, WebpageOptions};
#[cfg(target_os = "macos")]
use traffic_light::TrafficLight;
#[cfg(target_os = "macos")]
mod traffic_light;
#[derive(Clone, serde::Serialize)] #[derive(Clone, serde::Serialize)]
struct Payload { struct Payload {
args: Vec<String>, args: Vec<String>,
@ -102,21 +92,6 @@ async fn close_splashscreen(window: tauri::Window) {
fn main() { fn main() {
tauri::Builder::default() tauri::Builder::default()
.setup(|app| {
let window = app.get_window("main").unwrap();
#[cfg(target_os = "macos")]
window.position_traffic_lights(16.0, 25.0);
Ok(())
})
.on_window_event(|e| {
#[cfg(target_os = "macos")]
if let WindowEvent::Resized(..) = e.event() {
let window = e.window();
window.position_traffic_lights(16.0, 25.0);
}
})
.plugin(tauri_plugin_app::init()) .plugin(tauri_plugin_app::init())
.plugin(tauri_plugin_clipboard_manager::init()) .plugin(tauri_plugin_clipboard_manager::init())
.plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_dialog::init())

View File

@ -17,15 +17,15 @@
"height": 800, "height": 800,
"minWidth": 1080, "minWidth": 1080,
"minHeight": 800, "minHeight": 800,
"decorations": false,
"resizable": true, "resizable": true,
"title": "Lume", "title": "Lume",
"transparent": false,
"center": true, "center": true,
"fullscreen": false, "fullscreen": false,
"hiddenTitle": true, "hiddenTitle": true,
"visible": false, "visible": false,
"fileDropEnabled": true "fileDropEnabled": true,
"decorations": false,
"transparent": false
} }
] ]
} }

View File

@ -22,12 +22,16 @@
"resizable": true, "resizable": true,
"title": "Lume", "title": "Lume",
"titleBarStyle": "Overlay", "titleBarStyle": "Overlay",
"transparent": false,
"center": true, "center": true,
"fullscreen": false, "fullscreen": false,
"hiddenTitle": true, "hiddenTitle": true,
"visible": false, "visible": false,
"fileDropEnabled": true "fileDropEnabled": true,
"decorations": false,
"transparent": true,
"windowEffects": {
"effects": ["hudWindow"]
}
} }
] ]
} }

View File

@ -17,7 +17,6 @@
"height": 800, "height": 800,
"minWidth": 1080, "minWidth": 1080,
"minHeight": 800, "minHeight": 800,
"decorations": false,
"resizable": true, "resizable": true,
"title": "Lume", "title": "Lume",
"center": true, "center": true,
@ -25,6 +24,7 @@
"hiddenTitle": true, "hiddenTitle": true,
"visible": false, "visible": false,
"fileDropEnabled": true, "fileDropEnabled": true,
"decorations": false,
"transparent": true, "transparent": true,
"windowEffects": { "windowEffects": {
"effects": ["micaLight", "micaDark"] "effects": ["micaLight", "micaDark"]

View File

@ -19,14 +19,6 @@ button {
@apply cursor-default focus:outline-none; @apply cursor-default focus:outline-none;
} }
iframe {
height: auto !important;
}
span[data-slate-placeholder] {
margin-top: 0;
}
input::-ms-reveal, input::-ms-reveal,
input::-ms-clear { input::-ms-clear {
display: none; display: none;
@ -40,13 +32,20 @@ input::-ms-clear {
background-clip: padding-box; background-clip: padding-box;
} }
.scrollbar-hide::-webkit-scrollbar { .player {
display: none; --brand-color: #f5f5f5;
--focus-color: #4e9cf6;
--audio-brand: var(--brand-color);
--audio-focus-ring-color: var(--focus-color);
--audio-border-radius: 2px;
--video-brand: var(--brand-color);
--video-focus-ring-color: var(--focus-color);
--video-border-radius: 8px;
width: 100%;
} }
.scrollbar-hide { .player[data-view-type='video'] {
-ms-overflow-style: none; aspect-ratio: 16 /9;
scrollbar-width: none;
} }
.ProseMirror p.is-empty::before { .ProseMirror p.is-empty::before {
@ -60,33 +59,3 @@ input::-ms-clear {
.ProseMirror img.ProseMirror-selectednode { .ProseMirror img.ProseMirror-selectednode {
@apply outline-fuchsia-500; @apply outline-fuchsia-500;
} }
.player {
--brand-color: #f5f5f5;
--focus-color: #4e9cf6;
--audio-brand: var(--brand-color);
--audio-focus-ring-color: var(--focus-color);
--audio-border-radius: 2px;
--video-brand: var(--brand-color);
--video-focus-ring-color: var(--focus-color);
--video-border-radius: 8px;
/* 👉 https://vidstack.io/docs/player/components/layouts/default#css-variables for more. */
width: 100%;
}
.player[data-view-type='video'] {
aspect-ratio: 16 /9;
}
.src-buttons {
display: flex;
align-items: center;
justify-content: space-evenly;
margin-top: 40px;
margin-inline: auto;
max-width: 300px;
}

View File

@ -76,7 +76,7 @@ export function OnboardStep1Screen() {
add them later. add them later.
</p> </p>
</div> </div>
<div className="scrollbar-hide flex w-full flex-nowrap items-center gap-4 overflow-x-auto px-4"> <div className="scrollbar-none flex w-full flex-nowrap items-center gap-4 overflow-x-auto px-4">
{status === 'loading' ? ( {status === 'loading' ? (
<div className="flex h-full w-full items-center justify-center"> <div className="flex h-full w-full items-center justify-center">
<LoaderIcon className="h-4 w-4 animate-spin text-white" /> <LoaderIcon className="h-4 w-4 animate-spin text-white" />

View File

@ -101,7 +101,7 @@ export function OnboardStep2Screen() {
</p> </p>
</div> </div>
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
<div className="scrollbar-hide flex h-[450px] w-full flex-col divide-y divide-white/5 overflow-y-auto rounded-xl bg-white/20 backdrop-blur-xl"> <div className="scrollbar-none flex h-[450px] w-full flex-col divide-y divide-white/5 overflow-y-auto rounded-xl bg-white/20 backdrop-blur-xl">
{data.map((item: { hashtag: string }) => ( {data.map((item: { hashtag: string }) => (
<button <button
key={item.hashtag} key={item.hashtag}

View File

@ -112,7 +112,7 @@ export function OnboardStep3Screen() {
</p> </p>
</div> </div>
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
<div className="scrollbar-hide relative flex h-[500px] w-full flex-col divide-y divide-white/10 overflow-y-auto rounded-xl bg-white/10 backdrop-blur-xl"> <div className="scrollbar-none relative flex h-[500px] w-full flex-col divide-y divide-white/10 overflow-y-auto rounded-xl bg-white/10 backdrop-blur-xl">
{status === 'loading' ? ( {status === 'loading' ? (
<div className="flex h-full w-full items-center justify-center"> <div className="flex h-full w-full items-center justify-center">
<LoaderIcon className="h-4 w-4 animate-spin text-white" /> <LoaderIcon className="h-4 w-4 animate-spin text-white" />

View File

@ -94,7 +94,7 @@ export function ChatScreen() {
</p> </p>
</div> </div>
) : ( ) : (
<VList ref={listRef} className="scrollbar-hide h-full" mode="reverse"> <VList ref={listRef} className="scrollbar-none h-full" mode="reverse">
{data.map((message) => renderItem(message))} {data.map((message) => renderItem(message))}
</VList> </VList>
)} )}

View File

@ -33,7 +33,7 @@ export function ChatsScreen() {
return ( return (
<div className="grid h-full w-full grid-cols-3"> <div className="grid h-full w-full grid-cols-3">
<div className="scrollbar-hide col-span-1 h-full overflow-y-auto border-r border-white/5"> <div className="scrollbar-none col-span-1 h-full overflow-y-auto border-r border-white/5">
<div <div
data-tauri-drag-region data-tauri-drag-region
className="flex h-11 w-full shrink-0 items-center border-b border-white/5 px-3" className="flex h-11 w-full shrink-0 items-center border-b border-white/5 px-3"

View File

@ -58,7 +58,7 @@ export function ArticleNoteScreen() {
}; };
return ( return (
<div className="scrollbar-hide h-full w-full overflow-y-auto scroll-smooth"> <div className="scrollbar-none h-full w-full overflow-y-auto scroll-smooth">
<div className="container mx-auto px-4 pt-16 sm:px-6 lg:px-8"> <div className="container mx-auto px-4 pt-16 sm:px-6 lg:px-8">
<div className="grid grid-cols-5"> <div className="grid grid-cols-5">
<div className="col-span-1 pr-8"> <div className="col-span-1 pr-8">

View File

@ -62,7 +62,7 @@ export function TextNoteScreen() {
}; };
return ( return (
<div className="scrollbar-hide h-full w-full overflow-y-auto scroll-smooth"> <div className="scrollbar-none h-full w-full overflow-y-auto scroll-smooth">
<div className="container mx-auto px-4 pt-16 sm:px-6 lg:px-8"> <div className="container mx-auto px-4 pt-16 sm:px-6 lg:px-8">
<div className="grid grid-cols-5"> <div className="grid grid-cols-5">
<div className="col-span-1 pr-8"> <div className="col-span-1 pr-8">

View File

@ -53,7 +53,7 @@ export function NotificationScreen() {
}, []); }, []);
return ( return (
<div className="scrollbar-hide h-full w-full overflow-y-auto bg-white/10 backdrop-blur-xl"> <div className="scrollbar-none h-full w-full overflow-y-auto bg-white/10 backdrop-blur-xl">
<div className="grid h-full grid-cols-3"> <div className="grid h-full grid-cols-3">
<div className="col-span-2 flex flex-col border-r border-white/5"> <div className="col-span-2 flex flex-col border-r border-white/5">
<TitleBar title="Activities in the last 24 hours" /> <TitleBar title="Activities in the last 24 hours" />

View File

@ -78,7 +78,7 @@ export function RelayEventList({ relayUrl }: { relayUrl: string }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
<div className="h-10" /> <div className="h-10" />
{data.map((item) => renderItem(item))} {data.map((item) => renderItem(item))}
<div className="h-16" /> <div className="h-16" />

View File

@ -48,12 +48,12 @@ export function RelayList() {
{status === 'loading' ? ( {status === 'loading' ? (
<div className="flex h-full w-full items-center justify-center pb-10"> <div className="flex h-full w-full items-center justify-center pb-10">
<div className="inline-flex flex-col items-center justify-center gap-2"> <div className="inline-flex flex-col items-center justify-center gap-2">
<LoaderIcon className="h-5 w-5 animate-spin text-zinc-100 dark:text-zinc-900" /> <LoaderIcon className="h-5 w-5 animate-spin text-zinc-900 dark:text-zinc-100" />
<p>Loading relay...</p> <p>Loading relay...</p>
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide mt-20 h-full"> <VList className="scrollbar-none mt-20 h-full">
<div className="inline-flex h-16 w-full items-center border-b border-zinc-100 px-3 dark:border-zinc-900"> <div className="inline-flex h-16 w-full items-center border-b border-zinc-100 px-3 dark:border-zinc-900">
<h3 className="bg-gradient-to-r from-fuchsia-200 via-red-200 to-orange-300 bg-clip-text font-semibold text-transparent"> <h3 className="bg-gradient-to-r from-fuchsia-200 via-red-200 to-orange-300 bg-clip-text font-semibold text-transparent">
All relays used by your follows All relays used by your follows
@ -77,7 +77,7 @@ export function RelayList() {
<button <button
type="button" type="button"
onClick={() => connectRelay(key)} onClick={() => connectRelay(key)}
className="inline-flex h-6 w-6 items-center justify-center rounded text-zinc-100 hover:bg-zinc-200 dark:text-zinc-100 dark:hover:bg-zinc-800" className="inline-flex h-6 w-6 items-center justify-center rounded text-zinc-900 hover:bg-zinc-200 dark:text-zinc-100 dark:hover:bg-zinc-800"
> >
<PlusIcon className="h-3 w-3" /> <PlusIcon className="h-3 w-3" />
</button> </button>

View File

@ -103,7 +103,7 @@ export function WidgetList({ params }: { params: Widget }) {
return ( return (
<div className="h-full w-[420px] border-r border-zinc-100 dark:border-zinc-900"> <div className="h-full w-[420px] border-r border-zinc-100 dark:border-zinc-900">
<TitleBar id={params.id} title="Add widget" /> <TitleBar id={params.id} title="Add widget" />
<div className="scrollbar-hide h-full overflow-y-auto pb-20"> <div className="scrollbar-none h-full overflow-y-auto pb-20">
<div className="flex flex-col gap-6 px-3"> <div className="flex flex-col gap-6 px-3">
{DefaultWidgets.map((row: WidgetGroup, index: number) => {DefaultWidgets.map((row: WidgetGroup, index: number) =>
renderItem(row, index) renderItem(row, index)

View File

@ -86,7 +86,7 @@ export function SpaceScreen() {
return ( return (
<div className="h-full w-full"> <div className="h-full w-full">
<VList className="scrollbar-hide h-full w-full" horizontal> <VList className="scrollbar-none h-full w-full" horizontal>
{!widgets ? ( {!widgets ? (
<div className="flex h-full w-full flex-col items-center justify-center"> <div className="flex h-full w-full flex-col items-center justify-center">
<LoaderIcon className="h-5 w-5 animate-spin text-zinc-900 dark:text-zinc-100" /> <LoaderIcon className="h-5 w-5 animate-spin text-zinc-900 dark:text-zinc-100" />

View File

@ -68,7 +68,7 @@ export function UserScreen() {
); );
return ( return (
<div className="scrollbar-hide relative h-full w-full overflow-y-auto"> <div className="scrollbar-none relative h-full w-full overflow-y-auto">
<div data-tauri-drag-region className="absolute left-0 top-0 h-11 w-full" /> <div data-tauri-drag-region className="absolute left-0 top-0 h-11 w-full" />
<UserProfile pubkey={pubkey} /> <UserProfile pubkey={pubkey} />
<div className="mt-6 h-full w-full border-t border-white/5 px-1.5"> <div className="mt-6 h-full w-full border-t border-white/5 px-1.5">

View File

@ -55,17 +55,17 @@ export function ActiveAccount() {
} }
return ( return (
<div className="flex flex-col gap-1"> <div className="flex flex-col gap-1 rounded-lg bg-zinc-100 p-1 hover:bg-zinc-200 dark:bg-zinc-900 dark:hover:bg-zinc-800">
<Link to={`/users/${db.account.pubkey}`} className="relative inline-block"> <Link to={`/users/${db.account.pubkey}`} className="relative inline-block">
<Image <Image
src={user?.picture || user?.image} src={user?.picture || user?.image}
alt={db.account.npub} alt={db.account.npub}
className="aspect-square h-full w-full rounded-lg" className="aspect-square h-full w-full rounded-md"
/> />
<span className="absolute bottom-0 right-0 block h-2 w-2 rounded-full bg-green-400 ring-2 ring-zinc-50 dark:ring-zinc-950" /> <span className="absolute bottom-0 right-0 block h-2 w-2 rounded-full bg-green-400 ring-2 ring-zinc-50 dark:ring-zinc-950" />
</Link> </Link>
<div className="inline-flex items-center justify-center rounded-md bg-zinc-100 hover:bg-zinc-200 dark:bg-zinc-900 dark:hover:bg-zinc-800"> <div className="inline-flex items-center justify-center rounded-md">
<HorizontalDotsIcon className="h-5 w-5" /> <HorizontalDotsIcon className="h-4 w-4" />
</div> </div>
</div> </div>
); );

View File

@ -124,7 +124,7 @@ export function Composer() {
autoCorrect="off" autoCorrect="off"
autoCapitalize="off" autoCapitalize="off"
className={twMerge( className={twMerge(
'scrollbar-hide markdown max-h-[500px] overflow-y-auto break-all pr-2 outline-none', 'scrollbar-none markdown max-h-[500px] overflow-y-auto break-all pr-2 outline-none',
expand ? 'min-h-[500px]' : reply.id ? 'min-h-min' : 'min-h-[120px]' expand ? 'min-h-[500px]' : reply.id ? 'min-h-min' : 'min-h-[120px]'
)} )}
/> />

View File

@ -34,21 +34,19 @@ export function ComposerModal() {
</button> </button>
</Dialog.Trigger> </Dialog.Trigger>
<Dialog.Portal> <Dialog.Portal>
<Dialog.Overlay className="fixed inset-0 z-50 bg-black/80 backdrop-blur-2xl" /> <Dialog.Overlay className="fixed inset-0 z-50 bg-white dark:bg-black" />
<Dialog.Content className="fixed inset-0 z-50 flex min-h-full items-center justify-center"> <Dialog.Content className="fixed inset-0 z-50 flex min-h-full items-center justify-center">
<div <div
className={twMerge( className={twMerge(
'relative h-min w-full rounded-xl bg-white/10 backdrop-blur-xl', 'relative h-min w-full rounded-xl bg-zinc-100 dark:bg-zinc-900',
expand ? 'max-w-4xl' : 'max-w-2xl' expand ? 'max-w-4xl' : 'max-w-2xl'
)} )}
> >
<div className="flex items-center justify-between px-4 py-4"> <div className="flex items-center justify-between px-4 py-4">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<ComposerUser pubkey={db.account.pubkey} /> <ComposerUser pubkey={db.account.pubkey} />
<span> <ChevronRightIcon className="h-4 w-4 text-zinc-400 dark:text-zinc-600" />
<ChevronRightIcon className="h-4 w-4 text-white/50" /> <div className="inline-flex h-7 w-max items-center justify-center gap-0.5 rounded bg-zinc-200 pl-3 pr-1.5 text-sm font-medium text-zinc-900 dark:bg-zinc-800 dark:text-zinc-100">
</span>
<div className="inline-flex h-7 w-max items-center justify-center gap-0.5 rounded bg-white/10 pl-3 pr-1.5 text-sm font-medium text-white backdrop-blur-xl">
New Post New Post
<ChevronDownIcon className="h-4 w-4" /> <ChevronDownIcon className="h-4 w-4" />
</div> </div>
@ -57,12 +55,12 @@ export function ComposerModal() {
<button <button
type="button" type="button"
onClick={() => toggleExpand()} onClick={() => toggleExpand()}
className="inline-flex h-10 w-10 items-center justify-center rounded-lg backdrop-blur-xl hover:bg-white/10" className="inline-flex h-10 w-10 items-center justify-center rounded-lg text-zinc-400 hover:bg-zinc-200 hover:text-zinc-500 dark:text-zinc-600 dark:hover:bg-zinc-800 dark:hover:text-zinc-400"
> >
<ExpandIcon className="h-5 w-5 text-white/50" /> <ExpandIcon className="h-5 w-5" />
</button> </button>
<Dialog.Close className="inline-flex h-10 w-10 items-center justify-center rounded-lg backdrop-blur-xl hover:bg-white/10"> <Dialog.Close className="inline-flex h-10 w-10 items-center justify-center rounded-lg text-zinc-400 hover:bg-zinc-200 hover:text-zinc-500 dark:text-zinc-600 dark:hover:bg-zinc-800 dark:hover:text-zinc-400">
<CancelIcon className="h-5 w-5 text-white/50" /> <CancelIcon className="h-5 w-5" />
</Dialog.Close> </Dialog.Close>
</div> </div>
</div> </div>

View File

@ -13,8 +13,8 @@ export function ComposerUser({ pubkey }: { pubkey: string }) {
alt={pubkey} alt={pubkey}
className="h-10 w-10 shrink-0 rounded-lg" className="h-10 w-10 shrink-0 rounded-lg"
/> />
<h5 className="text-base font-semibold leading-none text-white"> <h5 className="font-medium text-white">
{user?.name || user?.display_name || user?.displayName || displayNpub(pubkey, 16)} {user?.display_name || user?.name || user?.displayName || displayNpub(pubkey, 16)}
</h5> </h5>
</div> </div>
); );

View File

@ -11,11 +11,8 @@ export function ComposeIcon(props: JSX.IntrinsicAttributes & SVGProps<SVGSVGElem
{...props} {...props}
> >
<path <path
stroke="currentColor" fill="currentColor"
strokeLinecap="round" d="M19.121 3.707a3 3 0 00-4.242 0l-12 12A3 3 0 002 17.828V20a1 1 0 001 1h2.172a3 3 0 002.12-.879l12-12a3 3 0 000-4.243l-.17-.171zM21.67 18.749a7.14 7.14 0 01-.93.827c-.58.43-1.503.968-2.574.968-1.006 0-1.878-.463-2.503-.796l-.066-.035c-.723-.384-1.168-.598-1.61-.598-1.057 0-1.732.558-2.26 1.116a1 1 0 11-1.454-1.373c.654-.692 1.824-1.743 3.714-1.743.986 0 1.85.46 2.468.79l.08.042c.717.38 1.172.598 1.631.598.429 0 .923-.234 1.384-.576a5.148 5.148 0 00.694-.624 1.01 1.01 0 011.41-.102c.476.412.418 1.076.017 1.506z"
strokeLinejoin="round"
strokeWidth="1.5"
d="M21 18s-1.334 1.544-2.834 1.544-2.707-1.429-4.18-1.429c-1.472 0-2.326.671-3.236 1.635m6.957-16.293l1.836 1.836a1 1 0 010 1.414l-13.25 13.25a1 1 0 01-.707.293H2.75v-2.836a1 1 0 01.293-.707l13.25-13.25a1 1 0 011.414 0z"
></path> ></path>
</svg> </svg>
); );

View File

@ -12,15 +12,7 @@ export function NwcIcon(props: JSX.IntrinsicAttributes & SVGProps<SVGSVGElement>
> >
<path <path
fill="currentColor" fill="currentColor"
fillRule="evenodd" d="M14.002 2.401c0-1.484-1.925-2.066-2.748-.832L3.188 13.668c-.665.997.05 2.332 1.248 2.332h5.566V21.6c0 1.484 1.925 2.067 2.748.832l8.066-12.099C21.48 9.335 20.766 8 19.568 8h-5.566V2.401z"
d="M5.496 12.886a1 1 0 011.008 0l3 1.75A1 1 0 0110 15.5V19a1 1 0 01-.496.864l-3 1.75a1 1 0 01-1.008 0l-3-1.75A1 1 0 012 19v-3.5a1 1 0 01.496-.864l3-1.75zM4 16.074v2.352l2 1.166 2-1.166v-2.352l-2-1.166-2 1.166z"
clipRule="evenodd"
></path>
<path
fill="currentColor"
fillRule="evenodd"
d="M17 8a4 4 0 014 4v5a4 4 0 01-4 4h-5v-5.5a3 3 0 00-1.488-2.591l-3-1.75a3 3 0 00-3.024 0L3 12.027V6.5A3.5 3.5 0 016.5 3H14a3 3 0 013 3v2zM6.5 5a1.5 1.5 0 100 3H15V6a1 1 0 00-1-1H6.5zm9 11a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"
clipRule="evenodd"
></path> ></path>
</svg> </svg>
); );

View File

@ -3,7 +3,7 @@ import { WindowTitlebar } from 'tauri-controls';
export function AuthLayout() { export function AuthLayout() {
return ( return (
<div className="relative h-screen w-screen"> <div className="relative h-screen w-screen bg-zinc-50 dark:bg-zinc-950">
<WindowTitlebar /> <WindowTitlebar />
<div className="bg-zinc-50 dark:bg-zinc-950"> <div className="bg-zinc-50 dark:bg-zinc-950">
<Outlet /> <Outlet />

View File

@ -8,7 +8,7 @@ export function SettingsLayout() {
<div className="flex h-screen w-screen"> <div className="flex h-screen w-screen">
<div className="relative flex h-full w-[232px] flex-col"> <div className="relative flex h-full w-[232px] flex-col">
<div data-tauri-drag-region className="h-11 w-full shrink-0" /> <div data-tauri-drag-region className="h-11 w-full shrink-0" />
<div className="scrollbar-hide flex h-full flex-1 flex-col gap-2 overflow-y-auto pb-32"> <div className="scrollbar-none flex h-full flex-1 flex-col gap-2 overflow-y-auto pb-32">
<div className="inline-flex items-center gap-2 border-l-2 border-transparent pl-4"> <div className="inline-flex items-center gap-2 border-l-2 border-transparent pl-4">
<Link <Link
to="/" to="/"

View File

@ -1,4 +1,4 @@
import { NavLink } from 'react-router-dom'; import { Link, NavLink } from 'react-router-dom';
import { twMerge } from 'tailwind-merge'; import { twMerge } from 'tailwind-merge';
import { ActiveAccount } from '@shared/accounts/active'; import { ActiveAccount } from '@shared/accounts/active';
@ -8,6 +8,7 @@ import {
CommunityIcon, CommunityIcon,
ExploreIcon, ExploreIcon,
HomeIcon, HomeIcon,
NwcIcon,
RelayIcon, RelayIcon,
} from '@shared/icons'; } from '@shared/icons';
@ -123,6 +124,12 @@ export function Navigation() {
</div> </div>
<div className="flex shrink-0 flex-col gap-3 p-1"> <div className="flex shrink-0 flex-col gap-3 p-1">
<ComposerModal /> <ComposerModal />
<Link
to="/nwc"
className="flex aspect-square h-full w-full items-center justify-center rounded-lg bg-zinc-100 hover:bg-interor-600 dark:bg-zinc-900 dark:hover:bg-interor-600"
>
<NwcIcon className="h-5 w-5" />
</Link>
<ActiveAccount /> <ActiveAccount />
</div> </div>
</div> </div>

View File

@ -67,7 +67,7 @@ export function GlobalArticlesWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{data.map((item) => renderItem(item))} {data.map((item) => renderItem(item))}
<div className="h-16" /> <div className="h-16" />
</VList> </VList>

View File

@ -69,7 +69,7 @@ export function GlobalFilesWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{data.map((item) => renderItem(item))} {data.map((item) => renderItem(item))}
<div className="h-16" /> <div className="h-16" />
</VList> </VList>

View File

@ -99,7 +99,7 @@ export function GlobalHashtagWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{data.map((item) => renderItem(item))} {data.map((item) => renderItem(item))}
<div className="h-16" /> <div className="h-16" />
</VList> </VList>

View File

@ -69,7 +69,7 @@ export function LocalArticlesWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{dbEvents.map((item) => renderItem(item))} {dbEvents.map((item) => renderItem(item))}
<div className="flex items-center justify-center px-3 py-1.5"> <div className="flex items-center justify-center px-3 py-1.5">
{dbEvents.length > 0 ? ( {dbEvents.length > 0 ? (

View File

@ -105,7 +105,7 @@ export function LocalFeedsWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{dbEvents.map((item) => renderItem(item))} {dbEvents.map((item) => renderItem(item))}
<div className="flex items-center justify-center px-3 py-1.5"> <div className="flex items-center justify-center px-3 py-1.5">
{dbEvents.length > 0 ? ( {dbEvents.length > 0 ? (

View File

@ -69,7 +69,7 @@ export function LocalFilesWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{dbEvents.map((item) => renderItem(item))} {dbEvents.map((item) => renderItem(item))}
<div className="flex items-center justify-center px-3 py-1.5"> <div className="flex items-center justify-center px-3 py-1.5">
{dbEvents.length > 0 ? ( {dbEvents.length > 0 ? (

View File

@ -104,7 +104,7 @@ export function LocalFollowsWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{dbEvents.map((item) => renderItem(item))} {dbEvents.map((item) => renderItem(item))}
<div className="flex items-center justify-center px-3 py-1.5"> <div className="flex items-center justify-center px-3 py-1.5">
{dbEvents.length > 0 ? ( {dbEvents.length > 0 ? (

View File

@ -113,7 +113,7 @@ export function LocalNetworkWidget() {
) : dbEvents.length === 0 ? ( ) : dbEvents.length === 0 ? (
<EventLoader firstTime={true} /> <EventLoader firstTime={true} />
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{!isFetched ? <EventLoader firstTime={false} /> : null} {!isFetched ? <EventLoader firstTime={false} /> : null}
{dbEvents.map((item) => renderItem(item))} {dbEvents.map((item) => renderItem(item))}
<div className="flex items-center justify-center px-3 py-1.5"> <div className="flex items-center justify-center px-3 py-1.5">

View File

@ -44,7 +44,7 @@ export function LocalThreadWidget({ params }: { params: Widget }) {
return ( return (
<WidgetWrapper> <WidgetWrapper>
<TitleBar id={params.id} title={params.title} /> <TitleBar id={params.id} title={params.title} />
<div className="scrollbar-hide h-full overflow-y-auto"> <div className="scrollbar-none h-full overflow-y-auto">
{status === 'loading' ? ( {status === 'loading' ? (
<div className="px-3 py-1.5"> <div className="px-3 py-1.5">
<div className="rounded-xl bg-zinc-100 px-3 py-3 dark:bg-zinc-900"> <div className="rounded-xl bg-zinc-100 px-3 py-3 dark:bg-zinc-900">

View File

@ -81,7 +81,7 @@ export function LocalUserWidget({ params }: { params: Widget }) {
return ( return (
<WidgetWrapper> <WidgetWrapper>
<TitleBar id={params.id} title={params.title} /> <TitleBar id={params.id} title={params.title} />
<div className="scrollbar-hide h-full overflow-y-auto"> <div className="scrollbar-none h-full overflow-y-auto">
<div className="px-3 pt-1.5"> <div className="px-3 pt-1.5">
<UserProfile pubkey={params.content} /> <UserProfile pubkey={params.content} />
</div> </div>

View File

@ -57,7 +57,7 @@ export function TrendingAccountsWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{data.map((item: Profile) => ( {data.map((item: Profile) => (
<NostrBandUserProfile key={item.pubkey} data={item} /> <NostrBandUserProfile key={item.pubkey} data={item} />
))} ))}

View File

@ -58,7 +58,7 @@ export function TrendingNotesWidget({ params }: { params: Widget }) {
</div> </div>
</div> </div>
) : ( ) : (
<VList className="scrollbar-hide h-full"> <VList className="scrollbar-none h-full">
{data.map((item) => ( {data.map((item) => (
<NoteWrapper key={item.event.id} event={item.event}> <NoteWrapper key={item.event.id} event={item.event}>
<TextNote content={item.event.content} /> <TextNote content={item.event.content} />

View File

@ -24,7 +24,7 @@ export function LearnNostrWidget({ params }: { params: Widget }) {
return ( return (
<WidgetWrapper> <WidgetWrapper>
<TitleBar id={params.id} title="The Joy of Nostr" /> <TitleBar id={params.id} title="The Joy of Nostr" />
<div className="scrollbar-hide h-full overflow-y-auto px-3 pb-20"> <div className="scrollbar-none h-full overflow-y-auto px-3 pb-20">
{resources.map((resource, index) => ( {resources.map((resource, index) => (
<div key={index} className="mb-6"> <div key={index} className="mb-6">
<h3 className="mb-2 text-sm font-medium text-zinc-500 dark:text-zinc-400"> <h3 className="mb-2 text-sm font-medium text-zinc-500 dark:text-zinc-400">

View File

@ -56,7 +56,7 @@ export function XfeedsWidget({ params }: { params: Widget }) {
className="relative h-11 w-full rounded-lg bg-zinc-200 px-3 py-1 text-zinc-900 !outline-none placeholder:text-zinc-500 dark:bg-zinc-800 dark:text-zinc-100 dark:placeholder:text-zinc-300" className="relative h-11 w-full rounded-lg bg-zinc-200 px-3 py-1 text-zinc-900 !outline-none placeholder:text-zinc-500 dark:bg-zinc-800 dark:text-zinc-100 dark:placeholder:text-zinc-300"
/> />
</div> </div>
<div className="scrollbar-hide flex h-[500px] w-full flex-col overflow-y-auto rounded-lg bg-zinc-200 py-2 dark:bg-zinc-800"> <div className="scrollbar-none flex h-[500px] w-full flex-col overflow-y-auto rounded-lg bg-zinc-200 py-2 dark:bg-zinc-800">
{db.account.network.map((item: string) => ( {db.account.network.map((item: string) => (
<button <button
key={item} key={item}

View File

@ -86,5 +86,8 @@ module.exports = {
}, },
}, },
}, },
plugins: [require('@tailwindcss/typography')], plugins: [
require('@tailwindcss/typography'),
require('tailwind-scrollbar')({ nocompatible: true }),
],
}; };