+45
-1
deno.lock
+45
-1
deno.lock
······"integrity": "sha512-zax42n693VEhnC+5tndvO2KLDTMkHOz8UExwmklvJv7R9VujfEwiSWhcv6Jgwb3ellaG8wjiQ1lMOIjLLvwh0Q==",···"integrity": "sha512-wfMJx1IMdnu0CZgWl0uR4JO2s6PGT1YPhpytD4ZHzEYKKQVuqV6Eb/7vieaVo1eYNMp2FrY67FZObeR7utRl2w==""integrity": "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg=="···"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==","integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="···"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",···
······+"integrity": "sha512-/SVh8vf2cXFJenmBnGeYF2aY3WGQm3cJeew5NWTlkqoy3LvJ5wkvKq9PWu4Tv653VF40rPOp6LOdVr9Fa+q5rA==","integrity": "sha512-zax42n693VEhnC+5tndvO2KLDTMkHOz8UExwmklvJv7R9VujfEwiSWhcv6Jgwb3ellaG8wjiQ1lMOIjLLvwh0Q==",···+"integrity": "sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg==",+"integrity": "sha512-lG021GkeORG06zfFf4bH85egObjBEKHNgAWHvbtY/E2dX4wxo88hf370pJDx8acdnuUJLJ2VKPikJtZwo4Heeg==","integrity": "sha512-wfMJx1IMdnu0CZgWl0uR4JO2s6PGT1YPhpytD4ZHzEYKKQVuqV6Eb/7vieaVo1eYNMp2FrY67FZObeR7utRl2w=="+"integrity": "sha512-XLWWxoR2HNl2qU+FCr0rp1APwJXci7HnzbOQLxK55OaMNBXZ19+xNC5ii4QCsThsDxa4JS/JTzuiQLziITWf2Q=="+"integrity": "sha512-f8zzTb/xlKIwv2OQ31DhShPUNCmIIleX6p7qIXwWwEUjX6x8skUtpdISSjnImq01LXpltGV5y8yhV4/Mlb7CRQ==","integrity": "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg=="···"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",+"integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==","integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="···"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",···
+3
-4
flake.lock
+3
-4
flake.lock
···
···
+2
-2
flake.nix
+2
-2
flake.nix
······
······
+2
package.json
+2
package.json
···
+7
src/app.css
+7
src/app.css
···@apply rounded-sm border-2 border-(--nucleus-accent) px-3 py-2 font-semibold text-(--nucleus-accent) transition-all hover:scale-105 hover:bg-(--nucleus-accent)/20;
+29
-56
src/components/AccountSelector.svelte
+29
-56
src/components/AccountSelector.svelte
···············-class="ml-auto hidden h-5 w-5 text-(--nucleus-accent) transition-all group-hover:[display:block] hover:scale-[1.2] hover:shadow-md"······
···············+class="ml-auto hidden h-5 w-5 text-(--nucleus-accent) transition-all group-hover:block hover:scale-[1.2] hover:shadow-md"······
+22
-21
src/components/BskyPost.svelte
+22
-21
src/components/BskyPost.svelte
···············const toggleLink = async (link: Backlink | null, collection: Nsid): Promise<Backlink | null> => {·········-class="inline-block h-6 w-6 animate-spin rounded-full border-3 border-(--nucleus-accent) [border-left-color:transparent]"···············
···············const toggleLink = async (link: Backlink | null, collection: Nsid): Promise<Backlink | null> => {·········+class="inline-block h-6 w-6 animate-spin rounded-full border-3 border-(--nucleus-accent) border-l-transparent"···············
+14
-23
src/components/PostComposer.svelte
+14
-23
src/components/PostComposer.svelte
············-class="[field-sizing:content] single-line-input resize-none bg-(--nucleus-bg)/40 focus:scale-100"
············+class="field-sizing-content single-line-input resize-none bg-(--nucleus-bg)/40 focus:scale-100"
+1
-1
src/components/SettingsPopup.svelte
+1
-1
src/components/SettingsPopup.svelte
+19
-5
src/lib/accounts.ts
+19
-5
src/lib/accounts.ts
······
······
+5
-7
src/lib/at/client.ts
+5
-7
src/lib/at/client.ts
·········
·········+async login(identifier: ActorIdentifier, agent: OAuthUserAgent): Promise<Result<null, string>> {
+91
src/lib/at/oauth.ts
+91
src/lib/at/oauth.ts
···
···
+6
src/lib/domain.ts
+6
src/lib/domain.ts
-19
src/lib/index.ts
-19
src/lib/index.ts
···
···
+23
src/lib/oauth.ts
+23
src/lib/oauth.ts
···
···
+1
-1
src/lib/settings.ts
+1
-1
src/lib/settings.ts
+17
src/lib/state.svelte.ts
+17
src/lib/state.svelte.ts
···
···
+1
-1
src/lib/theme.svelte.ts
src/lib/theme.ts
+1
-1
src/lib/theme.svelte.ts
src/lib/theme.ts
···
···
+166
src/lib/thread.ts
+166
src/lib/thread.ts
···
···+export const buildThreads = (timelines: Map<Did, Map<ResourceUri, PostWithUri>>): Thread[] => {
+133
-273
src/routes/+page.svelte
+133
-273
src/routes/+page.svelte
·····················-style="border-color: var(--nucleus-accent) var(--nucleus-accent) var(--nucleus-accent) transparent;"-class="mb-1.5 flex items-center gap-1.5 overflow-hidden text-nowrap break-words overflow-ellipsis"······-class="mx-1.5 mt-1.5 mb-2.5 flex items-center gap-1.5 text-[color-mix(in_srgb,_var(--nucleus-fg)_50%,_var(--nucleus-accent))]/70 transition-colors hover:text-(--nucleus-accent)"···-class="mx-8 mt-3 mb-4 h-px bg-gradient-to-r from-(--nucleus-accent)/30 to-(--nucleus-accent2)/30"
·········+if (!$accounts.some((account) => account.did === selectedDid)) selectedDid = $accounts[0].did;············+class="mb-1.5 flex items-center gap-1.5 overflow-hidden text-nowrap wrap-break-word overflow-ellipsis"······+class="mx-1.5 mt-1.5 mb-2.5 flex items-center gap-1.5 text-[color-mix(in_srgb,var(--nucleus-fg)_50%,var(--nucleus-accent))]/70 transition-colors hover:text-(--nucleus-accent)"···+class="mx-8 mt-3 mb-4 h-px bg-linear-to-r from-(--nucleus-accent)/30 to-(--nucleus-accent2)/30"+style="border-color: var(--nucleus-accent) var(--nucleus-accent) var(--nucleus-accent) transparent;"
+48
src/routes/+page.ts
+48
src/routes/+page.ts
···
···
+11
src/routes/oauth-client-metadata.json/+server.ts
+11
src/routes/oauth-client-metadata.json/+server.ts
+1
-7
tsconfig.json
+1
-7
tsconfig.json
···