Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol. wisp.place

frontend work started

nekomimi.pet 2f93e7cb 26997dc8

verified
Changed files
+134 -31
apps
main-app
public
acceptable-use
editor
onboarding
cli
+4 -4
apps/main-app/public/acceptable-use/acceptable-use.tsx
··· 6 6 7 7 function AcceptableUsePage() { 8 8 return ( 9 - <div className="min-h-screen bg-background"> 9 + <div className="w-full min-h-screen bg-background flex flex-col"> 10 10 {/* Header */} 11 - <header className="border-b border-border/40 bg-background/80 backdrop-blur-sm sticky top-0 z-50"> 12 - <div className="container mx-auto px-4 py-4 flex items-center justify-between"> 11 + <header className="w-full border-b border-border/40 bg-background/80 backdrop-blur-sm sticky top-0 z-50"> 12 + <div className="max-w-6xl w-full mx-auto px-4 h-16 flex items-center justify-between"> 13 13 <div className="flex items-center gap-2"> 14 14 <img src="/transparent-full-size-ico.png" alt="wisp.place" className="w-8 h-8" /> 15 15 <span className="text-xl font-semibold text-foreground"> ··· 326 326 </div> 327 327 328 328 {/* Footer */} 329 - <footer className="border-t border-border/40 bg-muted/20 mt-12"> 329 + <footer className="border-t border-border/40 bg-muted/20 mt-auto"> 330 330 <div className="container mx-auto px-4 py-8"> 331 331 <div className="text-center text-sm text-muted-foreground"> 332 332 <p>
+6 -6
apps/main-app/public/editor/editor.tsx
··· 302 302 return ( 303 303 <div className="w-full min-h-screen bg-background"> 304 304 {/* Header Skeleton */} 305 - <header className="border-b border-border/40 bg-background/80 backdrop-blur-sm sticky top-0 z-50"> 306 - <div className="container mx-auto px-4 py-4 flex items-center justify-between"> 305 + <header className="w-full border-b border-border/40 bg-background/80 backdrop-blur-sm sticky top-0 z-50"> 306 + <div className="max-w-6xl w-full mx-auto px-4 h-16 flex items-center justify-between"> 307 307 <div className="flex items-center gap-2"> 308 308 <img src="/transparent-full-size-ico.png" alt="wisp.place" className="w-8 h-8" /> 309 309 <span className="text-xl font-semibold text-foreground"> ··· 366 366 } 367 367 368 368 return ( 369 - <div className="w-full min-h-screen bg-background"> 369 + <div className="w-full min-h-screen bg-background flex flex-col"> 370 370 {/* Header */} 371 - <header className="border-b border-border/40 bg-background/80 backdrop-blur-sm sticky top-0 z-50"> 372 - <div className="container mx-auto px-4 py-4 flex items-center justify-between"> 371 + <header className="w-full border-b border-border/40 bg-background/80 backdrop-blur-sm sticky top-0 z-50"> 372 + <div className="max-w-6xl w-full mx-auto px-4 h-16 flex items-center justify-between"> 373 373 <div className="flex items-center gap-2"> 374 374 <img src="/transparent-full-size-ico.png" alt="wisp.place" className="w-8 h-8" /> 375 375 <span className="text-xl font-semibold text-foreground"> ··· 454 454 </div> 455 455 456 456 {/* Footer */} 457 - <footer className="border-t border-border/40 bg-muted/20 mt-12"> 457 + <footer className="border-t border-border/40 bg-muted/20 mt-auto"> 458 458 <div className="container mx-auto px-4 py-8"> 459 459 <div className="text-center text-sm text-muted-foreground"> 460 460 <p>
+16 -19
apps/main-app/public/onboarding/onboarding.tsx
··· 161 161 return ( 162 162 <div className="w-full min-h-screen bg-background"> 163 163 {/* Header */} 164 - <header className="border-b border-border/40 bg-background/80 backdrop-blur-sm sticky top-0 z-50"> 165 - <div className="container mx-auto px-4 py-4 flex items-center justify-between"> 164 + <header className="w-full border-b border-border/40 bg-background/80 backdrop-blur-sm sticky top-0 z-50"> 165 + <div className="max-w-6xl w-full mx-auto px-4 h-16 flex items-center justify-between"> 166 166 <div className="flex items-center gap-2"> 167 167 <div className="w-8 h-8 bg-primary rounded-lg flex items-center justify-center"> 168 168 <Globe className="w-5 h-5 text-primary-foreground" /> ··· 179 179 <div className="mb-8"> 180 180 <div className="flex items-center justify-center gap-2 mb-4"> 181 181 <div 182 - className={`w-8 h-8 rounded-full flex items-center justify-center ${ 183 - step === 'domain' 184 - ? 'bg-primary text-primary-foreground' 185 - : 'bg-green-500 text-white' 186 - }`} 182 + className={`w-8 h-8 rounded-full flex items-center justify-center ${step === 'domain' 183 + ? 'bg-primary text-primary-foreground' 184 + : 'bg-green-500 text-white' 185 + }`} 187 186 > 188 187 {step === 'domain' ? ( 189 188 '1' ··· 193 192 </div> 194 193 <div className="w-16 h-0.5 bg-border"></div> 195 194 <div 196 - className={`w-8 h-8 rounded-full flex items-center justify-center ${ 197 - step === 'upload' 198 - ? 'bg-primary text-primary-foreground' 199 - : step === 'domain' 200 - ? 'bg-muted text-muted-foreground' 201 - : 'bg-green-500 text-white' 202 - }`} 195 + className={`w-8 h-8 rounded-full flex items-center justify-center ${step === 'upload' 196 + ? 'bg-primary text-primary-foreground' 197 + : step === 'domain' 198 + ? 'bg-muted text-muted-foreground' 199 + : 'bg-green-500 text-white' 200 + }`} 203 201 > 204 202 {step === 'complete' ? ( 205 203 <CheckCircle2 className="w-5 h-5" /> ··· 258 256 {!isCheckingAvailability && 259 257 isAvailable !== null && ( 260 258 <div 261 - className={`absolute right-3 top-1/2 -translate-y-1/2 ${ 262 - isAvailable 263 - ? 'text-green-500' 264 - : 'text-red-500' 265 - }`} 259 + className={`absolute right-3 top-1/2 -translate-y-1/2 ${isAvailable 260 + ? 'text-green-500' 261 + : 'text-red-500' 262 + }`} 266 263 > 267 264 {isAvailable ? '✓' : '✗'} 268 265 </div>
+108 -2
cli/Cargo.lock
··· 162 162 ] 163 163 164 164 [[package]] 165 + name = "atomic-polyfill" 166 + version = "1.0.3" 167 + source = "registry+https://github.com/rust-lang/crates.io-index" 168 + checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" 169 + dependencies = [ 170 + "critical-section", 171 + ] 172 + 173 + [[package]] 165 174 name = "atomic-waker" 166 175 version = "1.1.2" 167 176 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 572 581 checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" 573 582 574 583 [[package]] 584 + name = "cobs" 585 + version = "0.3.0" 586 + source = "registry+https://github.com/rust-lang/crates.io-index" 587 + checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" 588 + dependencies = [ 589 + "thiserror 2.0.17", 590 + ] 591 + 592 + [[package]] 575 593 name = "colorchoice" 576 594 version = "1.0.4" 577 595 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 691 709 dependencies = [ 692 710 "cfg-if", 693 711 ] 712 + 713 + [[package]] 714 + name = "critical-section" 715 + version = "1.2.0" 716 + source = "registry+https://github.com/rust-lang/crates.io-index" 717 + checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" 694 718 695 719 [[package]] 696 720 name = "crossbeam-channel" ··· 972 996 ] 973 997 974 998 [[package]] 999 + name = "embedded-io" 1000 + version = "0.4.0" 1001 + source = "registry+https://github.com/rust-lang/crates.io-index" 1002 + checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" 1003 + 1004 + [[package]] 1005 + name = "embedded-io" 1006 + version = "0.6.1" 1007 + source = "registry+https://github.com/rust-lang/crates.io-index" 1008 + checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 1009 + 1010 + [[package]] 975 1011 name = "encode_unicode" 976 1012 version = "1.0.0" 977 1013 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1348 1384 ] 1349 1385 1350 1386 [[package]] 1387 + name = "hash32" 1388 + version = "0.2.1" 1389 + source = "registry+https://github.com/rust-lang/crates.io-index" 1390 + checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 1391 + dependencies = [ 1392 + "byteorder", 1393 + ] 1394 + 1395 + [[package]] 1351 1396 name = "hashbrown" 1352 1397 version = "0.12.3" 1353 1398 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1366 1411 checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 1367 1412 1368 1413 [[package]] 1414 + name = "heapless" 1415 + version = "0.7.17" 1416 + source = "registry+https://github.com/rust-lang/crates.io-index" 1417 + checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" 1418 + dependencies = [ 1419 + "atomic-polyfill", 1420 + "hash32", 1421 + "rustc_version", 1422 + "serde", 1423 + "spin 0.9.8", 1424 + "stable_deref_trait", 1425 + ] 1426 + 1427 + [[package]] 1369 1428 name = "heck" 1370 1429 version = "0.4.1" 1371 1430 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1841 1900 1842 1901 [[package]] 1843 1902 name = "jacquard" 1844 - version = "0.9.3" 1903 + version = "0.9.4" 1904 + source = "git+https://tangled.org/nekomimi.pet/jacquard#69a1552424ffa439ea1022aa8e3f311ed77ab4df" 1845 1905 dependencies = [ 1846 1906 "bytes", 1847 1907 "getrandom 0.2.16", ··· 1857 1917 "regex", 1858 1918 "regex-lite", 1859 1919 "reqwest", 1920 + "ring", 1860 1921 "serde", 1861 1922 "serde_html_form", 1862 1923 "serde_json", ··· 1871 1932 [[package]] 1872 1933 name = "jacquard-api" 1873 1934 version = "0.9.2" 1935 + source = "git+https://tangled.org/nekomimi.pet/jacquard#69a1552424ffa439ea1022aa8e3f311ed77ab4df" 1874 1936 dependencies = [ 1875 1937 "bon", 1876 1938 "bytes", ··· 1880 1942 "miette", 1881 1943 "rustversion", 1882 1944 "serde", 1945 + "serde_bytes", 1883 1946 "serde_ipld_dagcbor", 1884 1947 "thiserror 2.0.17", 1885 1948 "unicode-segmentation", ··· 1888 1951 [[package]] 1889 1952 name = "jacquard-common" 1890 1953 version = "0.9.2" 1954 + source = "git+https://tangled.org/nekomimi.pet/jacquard#69a1552424ffa439ea1022aa8e3f311ed77ab4df" 1891 1955 dependencies = [ 1892 1956 "base64 0.22.1", 1893 1957 "bon", ··· 1908 1972 "n0-future 0.1.3", 1909 1973 "ouroboros", 1910 1974 "p256", 1975 + "postcard", 1911 1976 "rand 0.9.2", 1912 1977 "regex", 1913 1978 "regex-lite", 1914 1979 "reqwest", 1980 + "ring", 1915 1981 "serde", 1982 + "serde_bytes", 1916 1983 "serde_html_form", 1917 1984 "serde_ipld_dagcbor", 1918 1985 "serde_json", ··· 1928 1995 1929 1996 [[package]] 1930 1997 name = "jacquard-derive" 1931 - version = "0.9.3" 1998 + version = "0.9.4" 1999 + source = "git+https://tangled.org/nekomimi.pet/jacquard#69a1552424ffa439ea1022aa8e3f311ed77ab4df" 1932 2000 dependencies = [ 1933 2001 "heck 0.5.0", 1934 2002 "jacquard-lexicon", ··· 1940 2008 [[package]] 1941 2009 name = "jacquard-identity" 1942 2010 version = "0.9.2" 2011 + source = "git+https://tangled.org/nekomimi.pet/jacquard#69a1552424ffa439ea1022aa8e3f311ed77ab4df" 1943 2012 dependencies = [ 1944 2013 "bon", 1945 2014 "bytes", ··· 1950 2019 "jacquard-lexicon", 1951 2020 "miette", 1952 2021 "mini-moka", 2022 + "n0-future 0.1.3", 1953 2023 "percent-encoding", 1954 2024 "reqwest", 2025 + "ring", 1955 2026 "serde", 1956 2027 "serde_html_form", 1957 2028 "serde_json", ··· 1965 2036 [[package]] 1966 2037 name = "jacquard-lexicon" 1967 2038 version = "0.9.2" 2039 + source = "git+https://tangled.org/nekomimi.pet/jacquard#69a1552424ffa439ea1022aa8e3f311ed77ab4df" 1968 2040 dependencies = [ 1969 2041 "cid", 1970 2042 "dashmap", ··· 1990 2062 [[package]] 1991 2063 name = "jacquard-oauth" 1992 2064 version = "0.9.2" 2065 + source = "git+https://tangled.org/nekomimi.pet/jacquard#69a1552424ffa439ea1022aa8e3f311ed77ab4df" 1993 2066 dependencies = [ 1994 2067 "base64 0.22.1", 1995 2068 "bytes", ··· 2004 2077 "miette", 2005 2078 "p256", 2006 2079 "rand 0.8.5", 2080 + "ring", 2007 2081 "rouille", 2008 2082 "serde", 2009 2083 "serde_html_form", ··· 2314 2388 [[package]] 2315 2389 name = "mini-moka" 2316 2390 version = "0.10.99" 2391 + source = "git+https://tangled.org/nekomimi.pet/jacquard#69a1552424ffa439ea1022aa8e3f311ed77ab4df" 2317 2392 dependencies = [ 2318 2393 "crossbeam-channel", 2319 2394 "crossbeam-utils", ··· 2794 2869 checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 2795 2870 2796 2871 [[package]] 2872 + name = "postcard" 2873 + version = "1.1.3" 2874 + source = "registry+https://github.com/rust-lang/crates.io-index" 2875 + checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" 2876 + dependencies = [ 2877 + "cobs", 2878 + "embedded-io 0.4.0", 2879 + "embedded-io 0.6.1", 2880 + "heapless", 2881 + "serde", 2882 + ] 2883 + 2884 + [[package]] 2797 2885 name = "potential_utf" 2798 2886 version = "0.1.4" 2799 2887 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3236 3324 checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 3237 3325 3238 3326 [[package]] 3327 + name = "rustc_version" 3328 + version = "0.4.1" 3329 + source = "registry+https://github.com/rust-lang/crates.io-index" 3330 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 3331 + dependencies = [ 3332 + "semver", 3333 + ] 3334 + 3335 + [[package]] 3239 3336 name = "rustix" 3240 3337 version = "1.1.2" 3241 3338 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3403 3500 "core-foundation-sys", 3404 3501 "libc", 3405 3502 ] 3503 + 3504 + [[package]] 3505 + name = "semver" 3506 + version = "1.0.27" 3507 + source = "registry+https://github.com/rust-lang/crates.io-index" 3508 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 3406 3509 3407 3510 [[package]] 3408 3511 name = "send_wrapper" ··· 3683 3786 version = "0.9.8" 3684 3787 source = "registry+https://github.com/rust-lang/crates.io-index" 3685 3788 checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 3789 + dependencies = [ 3790 + "lock_api", 3791 + ] 3686 3792 3687 3793 [[package]] 3688 3794 name = "spin"