add simple scroll restoration

This commit is contained in:
hzrd149 2025-02-19 17:09:28 -06:00
parent e4b75281b2
commit 65994101ba
8 changed files with 234 additions and 174 deletions

View File

@ -24,14 +24,14 @@
"@chakra-ui/breakpoint-utils": "^2.0.8",
"@chakra-ui/icons": "^2.2.4",
"@chakra-ui/media-query": "^3.3.0",
"@chakra-ui/react": "^2.10.5",
"@chakra-ui/react": "^2.10.6",
"@chakra-ui/shared-utils": "^2.0.4",
"@chakra-ui/styled-system": "^2.12.0",
"@chakra-ui/theme-tools": "^2.2.6",
"@codemirror/autocomplete": "^6.18.6",
"@codemirror/lang-json": "^6.0.1",
"@codemirror/language": "^6.10.8",
"@codemirror/view": "^6.36.2",
"@codemirror/view": "^6.36.3",
"@emoji-mart/data": "^1.2.1",
"@emoji-mart/react": "^1.1.1",
"@emotion/react": "^11.14.0",
@ -60,13 +60,13 @@
"blossom-client-sdk": "^3.0.1",
"blurhash": "^2.0.5",
"canvas-confetti": "^1.9.3",
"chart.js": "^4.4.7",
"chart.js": "^4.4.8",
"chroma-js": "^2.6.0",
"codemirror": "^6.0.1",
"codemirror-json-schema": "^0.7.9",
"dayjs": "^1.11.13",
"debug": "^4.4.0",
"easymde": "^2.18.0",
"easymde": "^2.19.0",
"emoji-regex": "^10.4.0",
"file-saver": "^2.0.5",
"framer-motion": "^10.18.0",
@ -121,7 +121,7 @@
"three-spritetext": "^1.9.4",
"three-stdlib": "^2.35.13",
"unified": "^11.0.5",
"uuid": "^11.0.5",
"uuid": "^11.1.0",
"vite-plugin-funding": "^0.1.0",
"webln": "^0.3.2",
"workbox-core": "7.0.0",

316
pnpm-lock.yaml generated
View File

@ -23,13 +23,13 @@ importers:
version: 2.0.8
'@chakra-ui/icons':
specifier: ^2.2.4
version: 2.2.4(@chakra-ui/react@2.10.5(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
version: 2.2.4(@chakra-ui/react@2.10.6(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
'@chakra-ui/media-query':
specifier: ^3.3.0
version: 3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(react@19.0.0))(react@19.0.0)
'@chakra-ui/react':
specifier: ^2.10.5
version: 2.10.5(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
specifier: ^2.10.6
version: 2.10.6(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@chakra-ui/shared-utils':
specifier: ^2.0.4
version: 2.0.4
@ -49,8 +49,8 @@ importers:
specifier: ^6.10.8
version: 6.10.8
'@codemirror/view':
specifier: ^6.36.2
version: 6.36.2
specifier: ^6.36.3
version: 6.36.3
'@emoji-mart/data':
specifier: ^1.2.1
version: 1.2.1
@ -92,10 +92,10 @@ importers:
version: 1.3.1
'@uiw/codemirror-theme-github':
specifier: ^4.23.8
version: 4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)
version: 4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.3)
'@uiw/react-codemirror':
specifier: ^4.23.8
version: 4.23.8(@babel/runtime@7.26.9)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.9)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.2)(codemirror@6.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
version: 4.23.8(@babel/runtime@7.26.9)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.9)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.3)(codemirror@6.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@webscopeio/react-textarea-autocomplete':
specifier: ^4.9.2
version: 4.9.2(prop-types@15.8.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@ -104,25 +104,25 @@ importers:
version: 0.7.2
applesauce-accounts:
specifier: next
version: 0.0.0-next-20250217190527(typescript@5.7.3)
version: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-content:
specifier: next
version: 0.0.0-next-20250217190527(typescript@5.7.3)
version: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-core:
specifier: next
version: 0.0.0-next-20250217190527(typescript@5.7.3)
version: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-factory:
specifier: next
version: 0.0.0-next-20250217190527(typescript@5.7.3)
version: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-loaders:
specifier: next
version: 0.0.0-next-20250217190527(typescript@5.7.3)
version: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-react:
specifier: next
version: 0.0.0-next-20250217190527(react-dom@19.0.0(react@19.0.0))(typescript@5.7.3)
version: 0.0.0-next-20250219163923(react-dom@19.0.0(react@19.0.0))(typescript@5.7.3)
applesauce-signers:
specifier: next
version: 0.0.0-next-20250217190527(typescript@5.7.3)
version: 0.0.0-next-20250219163923(typescript@5.7.3)
bech32:
specifier: ^2.0.0
version: 2.0.0
@ -136,8 +136,8 @@ importers:
specifier: ^1.9.3
version: 1.9.3
chart.js:
specifier: ^4.4.7
version: 4.4.7
specifier: ^4.4.8
version: 4.4.8
chroma-js:
specifier: ^2.6.0
version: 2.6.0
@ -146,7 +146,7 @@ importers:
version: 6.0.1
codemirror-json-schema:
specifier: ^0.7.9
version: 0.7.9(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)(@lezer/common@1.2.3)
version: 0.7.9(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/state@6.5.2)(@codemirror/view@6.36.3)(@lezer/common@1.2.3)
dayjs:
specifier: ^1.11.13
version: 1.11.13
@ -154,8 +154,8 @@ importers:
specifier: ^4.4.0
version: 4.4.0
easymde:
specifier: ^2.18.0
version: 2.18.0
specifier: ^2.19.0
version: 2.19.0
emoji-regex:
specifier: ^10.4.0
version: 10.4.0
@ -242,7 +242,7 @@ importers:
version: 19.0.0
react-chartjs-2:
specifier: ^5.3.0
version: 5.3.0(chart.js@4.4.7)(react@19.0.0)
version: 5.3.0(chart.js@4.4.8)(react@19.0.0)
react-diff-viewer-continued:
specifier: ^3.4.0
version: 3.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@ -281,7 +281,7 @@ importers:
version: 6.29.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react-simplemde-editor:
specifier: ^5.2.0
version: 5.2.0(easymde@2.18.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
version: 5.2.0(easymde@2.19.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react-singleton-hook:
specifier: ^4.0.1
version: 4.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@ -319,8 +319,8 @@ importers:
specifier: ^11.0.5
version: 11.0.5
uuid:
specifier: ^11.0.5
version: 11.0.5
specifier: ^11.1.0
version: 11.1.0
vite-plugin-funding:
specifier: ^0.1.0
version: 0.1.0
@ -1047,8 +1047,8 @@ packages:
'@chakra-ui/anatomy@2.3.4':
resolution: {integrity: sha512-fFIYN7L276gw0Q7/ikMMlZxP7mvnjRaWJ7f3Jsf9VtDOi6eAYIBRrhQe6+SZ0PGmoOkRaBc7gSE5oeIbgFFyrw==}
'@chakra-ui/anatomy@2.3.5':
resolution: {integrity: sha512-3im33cUOxCbISjaBlINE2u8BOwJSCdzpjCX0H+0JxK2xz26UaVA5xeI3NYHUoxDnr/QIrgfrllGxS0szYwOcyg==}
'@chakra-ui/anatomy@2.3.6':
resolution: {integrity: sha512-TjmjyQouIZzha/l8JxdBZN1pKZTj7sLpJ0YkFnQFyqHcbfWggW9jKWzY1E0VBnhtFz/xF3KC6UAVuZVSJx+y0g==}
'@chakra-ui/breakpoint-utils@2.0.8':
resolution: {integrity: sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==}
@ -1058,8 +1058,8 @@ packages:
peerDependencies:
react: '>=18'
'@chakra-ui/hooks@2.4.3':
resolution: {integrity: sha512-Sr2zsoTZw3p7HbrUy4aLpTIkE2XXUelAUgg3NGwMzrmx75bE0qVyiuuTFOuyEzGxYVV2Fe8QtcKKilm6RwzTGg==}
'@chakra-ui/hooks@2.4.4':
resolution: {integrity: sha512-+gMwLIkabtddIL/GICU7JmnYtvfONP+fNiTfdYLV9/I1eyCz8igKgLmFJOGM6F+BpUev6hh+/+DX5ezGQ9VTbQ==}
peerDependencies:
react: '>=18'
@ -1093,8 +1093,8 @@ packages:
peerDependencies:
react: '>=18'
'@chakra-ui/react@2.10.5':
resolution: {integrity: sha512-wCetfxT1iXWNmAwSLF1d0zyTQOQYswA3YJcw05grY1XEngO6956PScRB0Or5ZQJ6rGMcz5pcUhVgrb3q7AE+gQ==}
'@chakra-ui/react@2.10.6':
resolution: {integrity: sha512-9cdzcUR3LV3E2as0QhZhHAH5qjbyspV12kU1E1Ibcv6/uKUi6bIfPfMSC6R/Tw8Beqhn2ClJFPqjtXzL+C0knQ==}
peerDependencies:
'@emotion/react': '>=11'
'@emotion/styled': '>=11'
@ -1111,8 +1111,8 @@ packages:
'@chakra-ui/styled-system@2.12.0':
resolution: {integrity: sha512-zoqLw1I2y4GlZ0LDoyw8o0JjoDOW6u0IwFPAoHuw0UMbP8glHUGvwEL1STug/i/GzBKw83yoF6ae41HIQvhMww==}
'@chakra-ui/styled-system@2.12.1':
resolution: {integrity: sha512-DQph1nDiCPtgze7nDe0a36530ByXb5VpPosKGyWMvKocVeZJcDtYG6XM0+V5a0wKuFBXsViBBRIFUTiUesJAcg==}
'@chakra-ui/styled-system@2.12.2':
resolution: {integrity: sha512-BlQ7i3+GYC0S0c72B+paa0sYo+QeNSMfz6fwQRFsc8A5Aax9i9lSdRL+vwJVC+k6r/0HWfRwk016R2RD2ihEwQ==}
'@chakra-ui/styled-system@2.9.2':
resolution: {integrity: sha512-To/Z92oHpIE+4nk11uVMWqo2GGRS86coeMmjxtpnErmWRdLcp1WVCVRAvn+ZwpLiNR+reWFr2FFqJRsREuZdAg==}
@ -1134,8 +1134,8 @@ packages:
peerDependencies:
'@chakra-ui/styled-system': '>=2.0.0'
'@chakra-ui/theme-tools@2.2.7':
resolution: {integrity: sha512-K/VJd0QcnKik7m+qZTkggqNLep6+MPUu8IP5TUpHsnSM5R/RVjsJIR7gO8IZVAIMIGLLTIhGshHxeMekqv6LcQ==}
'@chakra-ui/theme-tools@2.2.8':
resolution: {integrity: sha512-X2i2qgkG+k3DQfh/adn3zzM4Ty8QrGobVPjMl9rMrEYq3ac+pur6KVdVHy/SwwoPvB6S4i84uq7y35+KbJan9g==}
peerDependencies:
'@chakra-ui/styled-system': '>=2.0.0'
@ -1147,8 +1147,8 @@ packages:
peerDependencies:
'@chakra-ui/styled-system': '>=2.8.0'
'@chakra-ui/theme@3.4.7':
resolution: {integrity: sha512-pfewthgZTFNUYeUwGvhPQO/FTIyf375cFV1AT8N1y0aJiw4KDe7YTGm7p0aFy4AwAjH2ydMgeEx/lua4tx8qyQ==}
'@chakra-ui/theme@3.4.8':
resolution: {integrity: sha512-ZLMP2Gek38ZTIlj+sMZLsd1TW27yVdmUKMfBmjsr1psAeOa5bDBLKDszICjhEqk7gAbiWB7jr1/HzBXid4kduQ==}
peerDependencies:
'@chakra-ui/styled-system': '>=2.8.0'
@ -1160,8 +1160,8 @@ packages:
peerDependencies:
react: '>=16.8.0'
'@chakra-ui/utils@2.2.3':
resolution: {integrity: sha512-cldoCQuexZ6e07/9hWHKD4l1QXXlM1Nax9tuQOBvVf/EgwNZt3nZu8zZRDFlhAOKCTQDkmpLTTu+eXXjChNQOw==}
'@chakra-ui/utils@2.2.4':
resolution: {integrity: sha512-nRpR9SnX7aLcJx7lKu8kgQWxdJso1oR/78HcBI+mzidvWdTykbTGdm5Q2R7S0PVH1IFBzBTgi6TiAjHvu96auA==}
peerDependencies:
react: '>=16.8.0'
@ -1247,8 +1247,8 @@ packages:
'@codemirror/theme-one-dark@6.1.2':
resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==}
'@codemirror/view@6.36.2':
resolution: {integrity: sha512-DZ6ONbs8qdJK0fdN7AB82CgI6tYXf4HWk1wSVa0+9bhVznCuuvhQtX8bFBoy3dv8rZSQqUd8GvhVAcielcidrA==}
'@codemirror/view@6.36.3':
resolution: {integrity: sha512-N2bilM47QWC8Hnx0rMdDxO2x2ImJ1FvZWXubwKgjeoOrWwEiFrtpA7SFHcuZ+o2Ze2VzbkgbzWVj4+V18LVkeg==}
'@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
@ -2189,26 +2189,26 @@ packages:
engines: {node: '>=8.0.0'}
hasBin: true
applesauce-accounts@0.0.0-next-20250217190527:
resolution: {integrity: sha512-7LqaMpG7sJOGIQClQrGzVAeCZmUor6OW+26w3/QJHiCmcwgfCNPToJFMw4LZmYOhR5XQceayX1bKDE72h99Mpw==}
applesauce-accounts@0.0.0-next-20250219163923:
resolution: {integrity: sha512-NfdlI0q3c2s6seWsMnCUzIp6MEy6QJ3VAk33jDA8obIQgJVDhrYx16zkvcQNKviawP39ZClVP6o9eDZajPkgRw==}
applesauce-content@0.0.0-next-20250217190527:
resolution: {integrity: sha512-h5TQRNEnHFG0rqdOW51SlfLyDV2WbaFwM+zwItajSmi3bMC6hvgJN6xChsU66SCXIvIcP2wjz/JoQEXybgy3PA==}
applesauce-content@0.0.0-next-20250219163923:
resolution: {integrity: sha512-cd353dh+D0VRrwtQKCetxXIgvBuDhYxPqNl03CtFkUHzrzVF8V+OITIuTfKcAtM4OGCUSOYqZSN0rJgpK3s6QA==}
applesauce-core@0.0.0-next-20250217190527:
resolution: {integrity: sha512-mygX/r30QRwfNOJqfyCHVLtJ79f9hQmEXnnZhnTOfO4VB7QoxvoGEMT/VugjQVxLqcp8nYqcs4f87el2ht77Ww==}
applesauce-core@0.0.0-next-20250219163923:
resolution: {integrity: sha512-WJn3hrvNzz/dwEK2GV1FP8WNbrs3hz4yODHAZnkrpl32o6RFkk/0zIgirBjcAKmAhMzblqhrw+lxNceYFyo7hA==}
applesauce-factory@0.0.0-next-20250217190527:
resolution: {integrity: sha512-pG/kT9x4YTsp6sT9Xc5G9zI5zLef9GXg028O0qREgONBhNNyPSmezv3HTKIsD66lwGAiqjE3SZ/RPJfYG3OrdA==}
applesauce-factory@0.0.0-next-20250219163923:
resolution: {integrity: sha512-fxzcNHoR8SDPQsWTN3OkRPX+vTQJGLNDq2LcEpxYuNKmiacEVzoOd1YOHigERmEbge3CCY12+wzUUdWLhnQO0A==}
applesauce-loaders@0.0.0-next-20250217190527:
resolution: {integrity: sha512-aECxPx0EZzWfGvzJJHbwUwmhkRf8kz5xWIGkFOcKz/z7afaYog8BO07TixHVpL14p3IxXixswR+t+lSc//42ig==}
applesauce-loaders@0.0.0-next-20250219163923:
resolution: {integrity: sha512-nVTM18FsEN2lub2UXqsShI0i+9/RvlcHKRAP8pGWF2ADSImPAFTlBdGO0eqlJwToUISyMuSfJFrjHL+KprrLkA==}
applesauce-react@0.0.0-next-20250217190527:
resolution: {integrity: sha512-7hEPhvIDP60/roDKSgNXuFxIUM8u19VLNIilXiiwOqW5wThTtVtT9+wwOzPTGqR2WwRiSteBhOKmofihomQHkA==}
applesauce-react@0.0.0-next-20250219163923:
resolution: {integrity: sha512-rXzRURwVHRwoFPLGRLbvhidhKMmp2fkj6SNnH27LKaHQUqG5RK46SSA9SWMQq9VXag3sYymvrFu0Sbcrnqi/4g==}
applesauce-signers@0.0.0-next-20250217190527:
resolution: {integrity: sha512-k96JCa9P+5PAfn61Nv2eXTytxr4gr5WoeD7NHf6dEdKCryIOZfMNHNEk/ldOjKv/NII5DWKvoVwEXJO5zAp7bg==}
applesauce-signers@0.0.0-next-20250219163923:
resolution: {integrity: sha512-nTQz+qW1rZnHVVxnASrzqYOMIq/4VGAV43VtUcqydmMNUF20vrR5scCzKB4Eyf7NhIBcxlPY8RHpC5NdAzBfaw==}
arg@4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
@ -2490,8 +2490,8 @@ packages:
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
chart.js@4.4.7:
resolution: {integrity: sha512-pwkcKfdzTMAU/+jNosKhNL2bHtJc/sSmYgVbuGTEDhzkrhmyihmP7vUc/5ZK9WopidMDHNe3Wm7jOd/WhuHWuw==}
chart.js@4.4.8:
resolution: {integrity: sha512-IkGZlVpXP+83QpMm4uxEiGqSI7jFizwVtF3+n5Pc3k7sMO+tkd0qxh2OzLhenM0K80xtmAONWGBn082EiBQSDA==}
engines: {pnpm: '>=8'}
cheerio-select@2.1.0:
@ -3009,8 +3009,8 @@ packages:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
easymde@2.18.0:
resolution: {integrity: sha512-IxVVUxNWIoXLeqtBU4BLc+eS/ScYhT1Dcb6yF5Wchoj1iXAV+TIIDWx+NCaZhY7RcSHqDPKllbYq7nwGKILnoA==}
easymde@2.19.0:
resolution: {integrity: sha512-4F1aNImqse+9xIjLh9ttfpOVenecjFPxUmKbl1tGp72Z+OyIqLZPE/SgNyy88c/xU0mOy0WC3+tfbZDQ5PDWhg==}
ebnf@1.9.1:
resolution: {integrity: sha512-uW2UKSsuty9ANJ3YByIQE4ANkD8nqUPO7r6Fwcc1ADKPe9FRdcPpMl3VEput4JSvKBJ4J86npIC2MLP0pYkCuw==}
@ -3202,8 +3202,8 @@ packages:
fast-uri@3.0.6:
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
fast-xml-parser@4.5.1:
resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==}
fast-xml-parser@4.5.2:
resolution: {integrity: sha512-xmnYV9o0StIz/0ArdzmWTxn9oDy0lH8Z80/8X/TD2EUQKXY4DHxoT9mYBqgGIG17DgddCJtH1M6DriMbalNsAA==}
hasBin: true
fastest-stable-stringify@2.0.2:
@ -3489,11 +3489,11 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
hast-util-to-html@9.0.4:
resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==}
hast-util-to-html@9.0.5:
resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
hast-util-to-jsx-runtime@2.3.2:
resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==}
hast-util-to-jsx-runtime@2.3.3:
resolution: {integrity: sha512-pdpkP8YD4v+qMKn2lnKSiJvZvb3FunDmFYQvVOsoO08+eTNWdaWKPMrC5wwNICtU3dQWHhElj5Sf5jPEnv4qJg==}
hast-util-whitespace@3.0.0:
resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
@ -4634,15 +4634,15 @@ packages:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
postcss@8.5.2:
resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==}
postcss@8.5.3:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
potpack@1.0.2:
resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==}
preact@10.26.0:
resolution: {integrity: sha512-6ugi/Mb7lyV5RA6KlnijFyDLMU253i7L0RRiObIzDoqj59KT9iTeNJbA/YGw6M7jP4vxaab0DOA8DgodTOA6EQ==}
preact@10.26.2:
resolution: {integrity: sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==}
prebuild-install@7.1.3:
resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==}
@ -4677,8 +4677,8 @@ packages:
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
property-information@6.5.0:
resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
property-information@7.0.0:
resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==}
proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
@ -5526,8 +5526,8 @@ packages:
peerDependencies:
three: '>=0.118.3'
three-render-objects@1.38.1:
resolution: {integrity: sha512-w51UYkIXnyULX9b7m8fJCDHy9HSviCbubYFIpI4Ox5gluAXRlKDvYg2E9ZKhBf4SXr1ieCpPLVfqLwWfo+ceRA==}
three-render-objects@1.39.0:
resolution: {integrity: sha512-kWH7rhq6uVj29kVwqM25S/MqSRcheNECKrqzEK8CaE65m37F+HCS2OqTFs0NAXJiCGI0hRLRSl5rcTKskB+WwQ==}
engines: {node: '>=12'}
peerDependencies:
three: '>=0.168'
@ -5565,8 +5565,8 @@ packages:
tinycolor2@1.6.0:
resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
tinyglobby@0.2.10:
resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
tinyglobby@0.2.11:
resolution: {integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==}
engines: {node: '>=12.0.0'}
tmp@0.0.33:
@ -5813,8 +5813,8 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
uuid@11.0.5:
resolution: {integrity: sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==}
uuid@11.1.0:
resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
hasBin: true
uuid@7.0.3:
@ -6162,7 +6162,7 @@ snapshots:
kapsule: 1.16.0
three: 0.170.0
three-forcegraph: 1.42.12(three@0.170.0)
three-render-objects: 1.38.1(three@0.170.0)
three-render-objects: 1.39.0(three@0.170.0)
'@ampproject/remapping@2.3.0':
dependencies:
@ -6974,7 +6974,7 @@ snapshots:
'@chakra-ui/anatomy@2.3.4': {}
'@chakra-ui/anatomy@2.3.5': {}
'@chakra-ui/anatomy@2.3.6': {}
'@chakra-ui/breakpoint-utils@2.0.8':
dependencies:
@ -6985,17 +6985,17 @@ snapshots:
'@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@19.0.0)
react: 19.0.0
'@chakra-ui/hooks@2.4.3(react@19.0.0)':
'@chakra-ui/hooks@2.4.4(react@19.0.0)':
dependencies:
'@chakra-ui/utils': 2.2.3(react@19.0.0)
'@chakra-ui/utils': 2.2.4(react@19.0.0)
'@zag-js/element-size': 0.31.1
copy-to-clipboard: 3.3.3
framesync: 6.1.2
react: 19.0.0
'@chakra-ui/icons@2.2.4(@chakra-ui/react@2.10.5(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)':
'@chakra-ui/icons@2.2.4(@chakra-ui/react@2.10.6(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)':
dependencies:
'@chakra-ui/react': 2.10.5(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@chakra-ui/react': 2.10.6(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react: 19.0.0
'@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(react@19.0.0))(react@19.0.0)':
@ -7022,12 +7022,12 @@ snapshots:
'@chakra-ui/utils': 2.0.15
react: 19.0.0
'@chakra-ui/react@2.10.5(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
'@chakra-ui/react@2.10.6(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(framer-motion@10.18.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@chakra-ui/hooks': 2.4.3(react@19.0.0)
'@chakra-ui/styled-system': 2.12.1(react@19.0.0)
'@chakra-ui/theme': 3.4.7(@chakra-ui/styled-system@2.12.1(react@19.0.0))(react@19.0.0)
'@chakra-ui/utils': 2.2.3(react@19.0.0)
'@chakra-ui/hooks': 2.4.4(react@19.0.0)
'@chakra-ui/styled-system': 2.12.2(react@19.0.0)
'@chakra-ui/theme': 3.4.8(@chakra-ui/styled-system@2.12.2(react@19.0.0))(react@19.0.0)
'@chakra-ui/utils': 2.2.4(react@19.0.0)
'@emotion/react': 11.14.0(@types/react@18.3.18)(react@19.0.0)
'@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@19.0.0))(@types/react@18.3.18)(react@19.0.0)
'@popperjs/core': 2.11.8
@ -7053,9 +7053,9 @@ snapshots:
transitivePeerDependencies:
- react
'@chakra-ui/styled-system@2.12.1(react@19.0.0)':
'@chakra-ui/styled-system@2.12.2(react@19.0.0)':
dependencies:
'@chakra-ui/utils': 2.2.3(react@19.0.0)
'@chakra-ui/utils': 2.2.4(react@19.0.0)
csstype: 3.1.3
transitivePeerDependencies:
- react
@ -7095,11 +7095,11 @@ snapshots:
transitivePeerDependencies:
- react
'@chakra-ui/theme-tools@2.2.7(@chakra-ui/styled-system@2.12.1(react@19.0.0))(react@19.0.0)':
'@chakra-ui/theme-tools@2.2.8(@chakra-ui/styled-system@2.12.2(react@19.0.0))(react@19.0.0)':
dependencies:
'@chakra-ui/anatomy': 2.3.5
'@chakra-ui/styled-system': 2.12.1(react@19.0.0)
'@chakra-ui/utils': 2.2.3(react@19.0.0)
'@chakra-ui/anatomy': 2.3.6
'@chakra-ui/styled-system': 2.12.2(react@19.0.0)
'@chakra-ui/utils': 2.2.4(react@19.0.0)
color2k: 2.0.3
transitivePeerDependencies:
- react
@ -7118,12 +7118,12 @@ snapshots:
'@chakra-ui/styled-system': 2.9.2
'@chakra-ui/theme-tools': 2.1.2(@chakra-ui/styled-system@2.9.2)
'@chakra-ui/theme@3.4.7(@chakra-ui/styled-system@2.12.1(react@19.0.0))(react@19.0.0)':
'@chakra-ui/theme@3.4.8(@chakra-ui/styled-system@2.12.2(react@19.0.0))(react@19.0.0)':
dependencies:
'@chakra-ui/anatomy': 2.3.5
'@chakra-ui/styled-system': 2.12.1(react@19.0.0)
'@chakra-ui/theme-tools': 2.2.7(@chakra-ui/styled-system@2.12.1(react@19.0.0))(react@19.0.0)
'@chakra-ui/utils': 2.2.3(react@19.0.0)
'@chakra-ui/anatomy': 2.3.6
'@chakra-ui/styled-system': 2.12.2(react@19.0.0)
'@chakra-ui/theme-tools': 2.2.8(@chakra-ui/styled-system@2.12.2(react@19.0.0))(react@19.0.0)
'@chakra-ui/utils': 2.2.4(react@19.0.0)
transitivePeerDependencies:
- react
@ -7140,7 +7140,7 @@ snapshots:
lodash.mergewith: 4.6.2
react: 19.0.0
'@chakra-ui/utils@2.2.3(react@19.0.0)':
'@chakra-ui/utils@2.2.4(react@19.0.0)':
dependencies:
'@types/lodash.mergewith': 4.6.9
lodash.mergewith: 4.6.2
@ -7292,14 +7292,14 @@ snapshots:
dependencies:
'@codemirror/language': 6.10.8
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
'@lezer/common': 1.2.3
'@codemirror/commands@6.8.0':
dependencies:
'@codemirror/language': 6.10.8
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
'@lezer/common': 1.2.3
'@codemirror/lang-json@6.0.1':
@ -7321,7 +7321,7 @@ snapshots:
'@codemirror/language@6.10.8':
dependencies:
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
'@lezer/common': 1.2.3
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
@ -7330,13 +7330,13 @@ snapshots:
'@codemirror/lint@6.8.4':
dependencies:
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
crelt: 1.0.6
'@codemirror/search@6.5.9':
dependencies:
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
crelt: 1.0.6
'@codemirror/state@6.5.2':
@ -7347,10 +7347,10 @@ snapshots:
dependencies:
'@codemirror/language': 6.10.8
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
'@lezer/highlight': 1.2.1
'@codemirror/view@6.36.2':
'@codemirror/view@6.36.3':
dependencies:
'@codemirror/state': 6.5.2
style-mod: 4.1.2
@ -8026,7 +8026,7 @@ snapshots:
'@shikijs/types': 1.29.2
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
hast-util-to-html: 9.0.4
hast-util-to-html: 9.0.5
'@shikijs/engine-javascript@1.29.2':
dependencies:
@ -8285,7 +8285,7 @@ snapshots:
'@types/webxr@0.5.21': {}
'@uiw/codemirror-extensions-basic-setup@4.23.8(@codemirror/autocomplete@6.18.6)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.9)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)':
'@uiw/codemirror-extensions-basic-setup@4.23.8(@codemirror/autocomplete@6.18.6)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.9)(@codemirror/state@6.5.2)(@codemirror/view@6.36.3)':
dependencies:
'@codemirror/autocomplete': 6.18.6
'@codemirror/commands': 6.8.0
@ -8293,30 +8293,30 @@ snapshots:
'@codemirror/lint': 6.8.4
'@codemirror/search': 6.5.9
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
'@uiw/codemirror-theme-github@4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)':
'@uiw/codemirror-theme-github@4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.3)':
dependencies:
'@uiw/codemirror-themes': 4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)
'@uiw/codemirror-themes': 4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.3)
transitivePeerDependencies:
- '@codemirror/language'
- '@codemirror/state'
- '@codemirror/view'
'@uiw/codemirror-themes@4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)':
'@uiw/codemirror-themes@4.23.8(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.36.3)':
dependencies:
'@codemirror/language': 6.10.8
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
'@uiw/react-codemirror@4.23.8(@babel/runtime@7.26.9)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.9)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.2)(codemirror@6.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
'@uiw/react-codemirror@4.23.8(@babel/runtime@7.26.9)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.9)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.36.3)(codemirror@6.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@babel/runtime': 7.26.9
'@codemirror/commands': 6.8.0
'@codemirror/state': 6.5.2
'@codemirror/theme-one-dark': 6.1.2
'@codemirror/view': 6.36.2
'@uiw/codemirror-extensions-basic-setup': 4.23.8(@codemirror/autocomplete@6.18.6)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.9)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)
'@codemirror/view': 6.36.3
'@uiw/codemirror-extensions-basic-setup': 4.23.8(@codemirror/autocomplete@6.18.6)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.9)(@codemirror/state@6.5.2)(@codemirror/view@6.36.3)
codemirror: 6.0.1
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
@ -8422,10 +8422,10 @@ snapshots:
dependencies:
entities: 2.2.0
applesauce-accounts@0.0.0-next-20250217190527(typescript@5.7.3):
applesauce-accounts@0.0.0-next-20250219163923(typescript@5.7.3):
dependencies:
'@noble/hashes': 1.7.1
applesauce-signers: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-signers: 0.0.0-next-20250219163923(typescript@5.7.3)
nanoid: 5.1.0
nostr-tools: 2.10.4(typescript@5.7.3)
rxjs: 7.8.1
@ -8433,13 +8433,13 @@ snapshots:
- supports-color
- typescript
applesauce-content@0.0.0-next-20250217190527(typescript@5.7.3):
applesauce-content@0.0.0-next-20250219163923(typescript@5.7.3):
dependencies:
'@cashu/cashu-ts': 2.0.0-rc1
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
applesauce-core: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-core: 0.0.0-next-20250219163923(typescript@5.7.3)
mdast-util-find-and-replace: 3.0.2
nostr-tools: 2.10.4(typescript@5.7.3)
remark: 15.0.1
@ -8450,7 +8450,7 @@ snapshots:
- supports-color
- typescript
applesauce-core@0.0.0-next-20250217190527(typescript@5.7.3):
applesauce-core@0.0.0-next-20250219163923(typescript@5.7.3):
dependencies:
'@scure/base': 1.2.4
debug: 4.4.0
@ -8464,19 +8464,19 @@ snapshots:
- supports-color
- typescript
applesauce-factory@0.0.0-next-20250217190527(typescript@5.7.3):
applesauce-factory@0.0.0-next-20250219163923(typescript@5.7.3):
dependencies:
applesauce-content: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-core: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-content: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-core: 0.0.0-next-20250219163923(typescript@5.7.3)
nanoid: 5.1.0
nostr-tools: 2.10.4(typescript@5.7.3)
transitivePeerDependencies:
- supports-color
- typescript
applesauce-loaders@0.0.0-next-20250217190527(typescript@5.7.3):
applesauce-loaders@0.0.0-next-20250219163923(typescript@5.7.3):
dependencies:
applesauce-core: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-core: 0.0.0-next-20250219163923(typescript@5.7.3)
nanoid: 5.1.0
nostr-tools: 2.10.4(typescript@5.7.3)
rx-nostr: 3.5.0
@ -8485,12 +8485,12 @@ snapshots:
- supports-color
- typescript
applesauce-react@0.0.0-next-20250217190527(react-dom@19.0.0(react@19.0.0))(typescript@5.7.3):
applesauce-react@0.0.0-next-20250219163923(react-dom@19.0.0(react@19.0.0))(typescript@5.7.3):
dependencies:
applesauce-accounts: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-content: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-core: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-factory: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-accounts: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-content: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-core: 0.0.0-next-20250219163923(typescript@5.7.3)
applesauce-factory: 0.0.0-next-20250219163923(typescript@5.7.3)
nostr-tools: 2.10.4(typescript@5.7.3)
observable-hooks: 4.2.4(react-dom@19.0.0(react@19.0.0))(react@18.3.1)(rxjs@7.8.1)
react: 18.3.1
@ -8500,12 +8500,12 @@ snapshots:
- supports-color
- typescript
applesauce-signers@0.0.0-next-20250217190527(typescript@5.7.3):
applesauce-signers@0.0.0-next-20250219163923(typescript@5.7.3):
dependencies:
'@noble/hashes': 1.7.1
'@noble/secp256k1': 1.7.1
'@scure/base': 1.2.4
applesauce-core: 0.0.0-next-20250217190527(typescript@5.7.3)
applesauce-core: 0.0.0-next-20250219163923(typescript@5.7.3)
debug: 4.4.0
nanoid: 5.1.0
nostr-tools: 2.10.4(typescript@5.7.3)
@ -8816,7 +8816,7 @@ snapshots:
chardet@0.7.0: {}
chart.js@4.4.7:
chart.js@4.4.8:
dependencies:
'@kurkle/color': 0.3.4
@ -8877,12 +8877,12 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
codemirror-json-schema@0.7.9(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/state@6.5.2)(@codemirror/view@6.36.2)(@lezer/common@1.2.3):
codemirror-json-schema@0.7.9(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/state@6.5.2)(@codemirror/view@6.36.3)(@lezer/common@1.2.3):
dependencies:
'@codemirror/language': 6.10.8
'@codemirror/lint': 6.8.4
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
'@lezer/common': 1.2.3
'@sagold/json-pointer': 5.1.2
'@shikijs/markdown-it': 1.29.2
@ -8904,7 +8904,7 @@ snapshots:
dependencies:
'@codemirror/language': 6.10.8
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
'@lezer/common': 1.2.3
'@lezer/highlight': 1.2.1
json5: 2.2.3
@ -8925,7 +8925,7 @@ snapshots:
'@codemirror/lint': 6.8.4
'@codemirror/search': 6.5.9
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.2
'@codemirror/view': 6.36.3
color-convert@1.9.3:
dependencies:
@ -9411,7 +9411,7 @@ snapshots:
es-errors: 1.3.0
gopd: 1.2.0
easymde@2.18.0:
easymde@2.19.0:
dependencies:
'@types/codemirror': 5.60.15
'@types/marked': 4.3.2
@ -9672,7 +9672,7 @@ snapshots:
fast-uri@3.0.6: {}
fast-xml-parser@4.5.1:
fast-xml-parser@4.5.2:
dependencies:
strnum: 1.0.5
@ -9733,7 +9733,7 @@ snapshots:
dependencies:
d3-selection: 3.0.0
kapsule: 1.16.0
preact: 10.26.0
preact: 10.26.2
focus-lock@1.3.6:
dependencies:
@ -9987,7 +9987,7 @@ snapshots:
dependencies:
function-bind: 1.1.2
hast-util-to-html@9.0.4:
hast-util-to-html@9.0.5:
dependencies:
'@types/hast': 3.0.4
'@types/unist': 3.0.3
@ -9996,12 +9996,12 @@ snapshots:
hast-util-whitespace: 3.0.0
html-void-elements: 3.0.0
mdast-util-to-hast: 13.2.0
property-information: 6.5.0
property-information: 7.0.0
space-separated-tokens: 2.0.2
stringify-entities: 4.0.4
zwitch: 2.0.4
hast-util-to-jsx-runtime@2.3.2:
hast-util-to-jsx-runtime@2.3.3:
dependencies:
'@types/estree': 1.0.6
'@types/hast': 3.0.4
@ -10013,7 +10013,7 @@ snapshots:
mdast-util-mdx-expression: 2.0.1
mdast-util-mdx-jsx: 3.2.0
mdast-util-mdxjs-esm: 2.0.1
property-information: 6.5.0
property-information: 7.0.0
space-separated-tokens: 2.0.2
style-to-object: 1.0.8
unist-util-position: 5.0.0
@ -10942,7 +10942,7 @@ snapshots:
block-stream2: 2.1.0
browser-or-node: 2.1.1
buffer-crc32: 0.2.13
fast-xml-parser: 4.5.1
fast-xml-parser: 4.5.2
ipaddr.js: 2.2.0
json-stream: 1.0.0
lodash: 4.17.21
@ -11313,7 +11313,7 @@ snapshots:
possible-typed-array-names@1.1.0: {}
postcss@8.5.2:
postcss@8.5.3:
dependencies:
nanoid: 3.3.8
picocolors: 1.1.1
@ -11321,7 +11321,7 @@ snapshots:
potpack@1.0.2: {}
preact@10.26.0: {}
preact@10.26.2: {}
prebuild-install@7.1.3:
dependencies:
@ -11359,7 +11359,7 @@ snapshots:
object-assign: 4.1.1
react-is: 16.13.1
property-information@6.5.0: {}
property-information@7.0.0: {}
proxy-addr@2.0.7:
dependencies:
@ -11429,9 +11429,9 @@ snapshots:
transitivePeerDependencies:
- dnd-core
react-chartjs-2@5.3.0(chart.js@4.4.7)(react@19.0.0):
react-chartjs-2@5.3.0(chart.js@4.4.8)(react@19.0.0):
dependencies:
chart.js: 4.4.7
chart.js: 4.4.8
react: 19.0.0
react-clientside-effect@1.2.7(react@19.0.0):
@ -11540,7 +11540,7 @@ snapshots:
'@types/hast': 3.0.4
'@types/react': 18.3.18
devlop: 1.1.0
hast-util-to-jsx-runtime: 2.3.2
hast-util-to-jsx-runtime: 2.3.3
html-url-attributes: 3.0.1
mdast-util-to-hast: 13.2.0
react: 19.0.0
@ -11617,10 +11617,10 @@ snapshots:
'@remix-run/router': 1.22.0
react: 19.0.0
react-simplemde-editor@5.2.0(easymde@2.18.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
react-simplemde-editor@5.2.0(easymde@2.19.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
'@types/codemirror': 5.60.15
easymde: 2.18.0
easymde: 2.19.0
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
@ -12404,7 +12404,7 @@ snapshots:
three: 0.170.0
tinycolor2: 1.6.0
three-render-objects@1.38.1(three@0.170.0):
three-render-objects@1.39.0(three@0.170.0):
dependencies:
'@tweenjs/tween.js': 25.0.0
accessor-fn: 1.5.1
@ -12446,7 +12446,7 @@ snapshots:
tinycolor2@1.6.0: {}
tinyglobby@0.2.10:
tinyglobby@0.2.11:
dependencies:
fdir: 6.4.3(picomatch@4.0.2)
picomatch: 4.0.2
@ -12676,7 +12676,7 @@ snapshots:
utils-merge@1.0.1: {}
uuid@11.0.5: {}
uuid@11.1.0: {}
uuid@7.0.3: {}
@ -12709,7 +12709,7 @@ snapshots:
dependencies:
debug: 4.4.0
pretty-bytes: 6.1.1
tinyglobby: 0.2.10
tinyglobby: 0.2.11
vite: 5.4.14(@types/node@22.13.4)(terser@5.39.0)
workbox-build: 7.3.0(@types/babel__core@7.20.5)
workbox-window: 7.3.0
@ -12730,7 +12730,7 @@ snapshots:
vite@5.4.14(@types/node@22.13.4)(terser@5.39.0):
dependencies:
esbuild: 0.21.5
postcss: 8.5.2
postcss: 8.5.3
rollup: 4.34.8
optionalDependencies:
'@types/node': 22.13.4

View File

@ -5,6 +5,7 @@ import { Flex, FlexProps, Spinner } from "@chakra-ui/react";
import { useBreakpointValue } from "../../../providers/global/breakpoint-provider";
import SimpleHeader from "./simple-header";
import { ErrorBoundary } from "../../error-boundary";
import useScrollRestoreRef from "../../../hooks/use-scroll-restore";
export default function SimpleParentView({
children,
@ -30,8 +31,10 @@ export default function SimpleParentView({
const isMobile = useBreakpointValue({ base: true, lg: false });
const showMenu = !isMobile || !!match;
const ref = useScrollRestoreRef("parent");
return (
<Flex data-type="contained-view" h="full" overflow="hidden" direction={{ base: "column", lg: "row" }}>
<Flex data-type="parent-view" h="full" overflow="hidden" direction={{ base: "column", lg: "row" }}>
{showMenu && (
<Flex w={{ base: "full", lg: width }} direction="column" overflow="hidden" h="full" flexShrink={0}>
{title && <SimpleHeader title={title}>{actions}</SimpleHeader>}
@ -43,6 +46,7 @@ export default function SimpleParentView({
overflowY={scroll ? "auto" : "hidden"}
overflowX="hidden"
flex={1}
ref={ref}
>
{children}
</Flex>

View File

@ -1,8 +1,8 @@
import { ReactNode } from "react";
import { ReactNode, useRef } from "react";
import { Flex, FlexProps } from "@chakra-ui/react";
import SimpleHeader from "./simple-header";
import { UNSAFE_useScrollRestoration } from "react-router-dom";
import useScrollRestoreRef from "../../../hooks/use-scroll-restore";
export default function SimpleView({
children,
@ -22,6 +22,7 @@ export default function SimpleView({
center?: boolean;
scroll?: boolean;
}) {
const ref = useScrollRestoreRef();
const content = (
<Flex
direction="column"
@ -38,14 +39,21 @@ export default function SimpleView({
</Flex>
);
UNSAFE_useScrollRestoration;
return (
<Flex as={as} flex={1} direction="column" pr="var(--safe-right)" pl="var(--safe-left)" overflow="hidden" {...props}>
<Flex
data-type="simple-view"
as={as}
flex={1}
direction="column"
pr="var(--safe-right)"
pl="var(--safe-left)"
overflow="hidden"
{...props}
>
<SimpleHeader title={title}>{actions}</SimpleHeader>
{scroll ? (
<Flex flex={1} overflowY="auto" overflowX="hidden" direction="column">
<Flex flex={1} overflowY="auto" overflowX="hidden" direction="column" ref={ref}>
{content}
</Flex>
) : (

View File

@ -1,8 +1,11 @@
import { Box, ComponentWithAs, Flex, FlexProps } from "@chakra-ui/react";
import useScrollRestoreRef from "../hooks/use-scroll-restore";
const VerticalPageLayout: ComponentWithAs<"div", FlexProps> = ({ children, ...props }: FlexProps) => {
const ref = useScrollRestoreRef();
return (
<Box overflowX="hidden" overflowY="auto" h="full" w="full">
<Box overflowX="hidden" overflowY="auto" h="full" w="full" ref={ref}>
<Flex direction="column" pt="2" pb="12" gap="2" px="2" w="full" {...props}>
{children}
</Flex>

View File

@ -0,0 +1,28 @@
import { useLayoutEffect, useRef } from "react";
import { useLocation } from "react-router-dom";
export default function useScrollRestoreRef<T extends HTMLElement = HTMLDivElement>(name = "default") {
const ref = useRef<T | null>(null);
const location = useLocation();
const key = "scroll_" + name + "_" + location.key + location.pathname;
useLayoutEffect(() => {
const container = ref.current;
// Restore scroll position on mount
if (container) {
const savedScroll = sessionStorage.getItem(key);
if (savedScroll) container.scrollTop = parseInt(savedScroll, 10);
}
// Save scroll position before unmounting
return () => {
if (!container) return;
const y = container?.scrollTop;
if (y) sessionStorage.setItem(key, String(y));
else sessionStorage.removeItem(key);
};
}, [key]);
return ref;
}

View File

@ -1,4 +1,4 @@
import { memo, useCallback, useContext, useEffect, useMemo, useState } from "react";
import { memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
import { Button, ButtonGroup, Flex, IconButton } from "@chakra-ui/react";
import { UNSAFE_DataRouterContext, useLocation, useNavigate } from "react-router-dom";
import { mergeRelaySets } from "applesauce-core/helpers";
@ -26,6 +26,7 @@ import decryptionCacheService from "../../services/decryption-cache";
import UserDnsIdentityIcon from "../../components/user/user-dns-identity-icon";
import UserAvatarLink from "../../components/user/user-avatar-link";
import SimpleView from "../../components/layout/presets/simple-view";
import useScrollRestoreRef from "../../hooks/use-scroll-restore";
/** This is broken out from DirectMessageChatPage for performance reasons. Don't use outside of file */
const ChatLog = memo(({ messages }: { messages: NostrEvent[] }) => {
@ -111,6 +112,9 @@ function DirectMessageChatPage({ pubkey }: { pubkey: string }) {
const callback = useTimelineCurserIntersectionCallback(loader);
// restore scroll on navigation
const scroll = useScrollRestoreRef();
return (
<ThreadsProvider messages={messages}>
<IntersectionObserverProvider callback={callback}>
@ -140,7 +144,16 @@ function DirectMessageChatPage({ pubkey }: { pubkey: string }) {
scroll={false}
flush
>
<Flex direction="column-reverse" p="2" gap="2" flexGrow={1} h={0} overflowX="hidden" overflowY="auto">
<Flex
direction="column-reverse"
p="2"
gap="2"
flexGrow={1}
h={0}
overflowX="hidden"
overflowY="auto"
ref={scroll}
>
<ChatLog messages={messages} />
<TimelineActionAndStatus loader={loader} />
</Flex>

View File

@ -24,6 +24,8 @@ import useUserMailboxes from "../../hooks/use-user-mailboxes";
import useUserContacts from "../../hooks/use-user-contacts";
import useUserMutes from "../../hooks/use-user-mutes";
import SimpleParentView from "../../components/layout/presets/simple-parent-view";
import useScrollRestoreRef from "../../hooks/use-scroll-restore";
import useRouteStateValue from "../../hooks/use-route-state-value";
export function useDirectMessagesTimeline(pubkey?: string) {
const mailboxes = useUserMailboxes(pubkey);
@ -78,7 +80,7 @@ function ConversationCard({ index, style, data }: ListChildComponentProps<KnownC
}
function MessagesHomePage() {
const [filter, setFilter] = useState<"contacts" | "other" | "muted">("contacts");
const { value: filter, setValue: setFilter } = useRouteStateValue<"contacts" | "other" | "muted">("tab", "contacts");
const account = useActiveAccount()!;
const contacts = useUserContacts(account?.pubkey, undefined, true)?.map((p) => p.pubkey);
@ -108,6 +110,7 @@ function MessagesHomePage() {
}, [messages, account.pubkey, contacts?.length, filter, mutes?.pubkeys.size]);
const callback = useTimelineCurserIntersectionCallback(loader);
const scroll = useScrollRestoreRef("chats");
return (
<SimpleParentView path="/messages" width="md" title="Messages" scroll={false}>
@ -133,6 +136,7 @@ function MessagesHomePage() {
itemCount={conversations?.length ?? 0}
itemKey={(i, data) => data[i].myself + data[i].correspondent}
itemSize={64}
innerRef={scroll}
>
{ConversationCard}
</FixedSizeList>