your personal website on atproto - mirror blento.app
26
fork

Configure Feed

Select the types of activity you want to include in your feed.

format

Florian 28a155df dcfa583a

+38 -52
+31 -31
.claude/settings.local.json
··· 1 1 { 2 - "permissions": { 3 - "allow": [ 4 - "Bash(pnpm check:*)", 5 - "mcp__ide__getDiagnostics", 6 - "mcp__plugin_svelte_svelte__svelte-autofixer", 7 - "mcp__plugin_svelte_svelte__list-sections", 8 - "Bash(pkill:*)", 9 - "Bash(timeout 8 pnpm dev:*)", 10 - "Bash(git checkout:*)", 11 - "Bash(npx svelte-kit:*)", 12 - "Bash(ls:*)", 13 - "Bash(pnpm format:*)", 14 - "Bash(pnpm add:*)", 15 - "WebSearch", 16 - "WebFetch(domain:github.com)", 17 - "WebFetch(domain:flipclockjs.com)", 18 - "WebFetch(domain:codepen.io)", 19 - "WebFetch(domain:flo-bit.dev)", 20 - "Bash(pnpm install)", 21 - "Bash(pnpm install:*)", 22 - "Bash(pnpm config:*)", 23 - "Bash(lsof:*)", 24 - "Bash(pnpm dev)", 25 - "Bash(pnpm exec svelte-kit:*)", 26 - "Bash(pnpm build:*)", 27 - "Bash(pnpm remove:*)", 28 - "Bash(grep:*)", 29 - "Bash(find:*)", 30 - "Bash(npx prettier:*)" 31 - ] 32 - } 2 + "permissions": { 3 + "allow": [ 4 + "Bash(pnpm check:*)", 5 + "mcp__ide__getDiagnostics", 6 + "mcp__plugin_svelte_svelte__svelte-autofixer", 7 + "mcp__plugin_svelte_svelte__list-sections", 8 + "Bash(pkill:*)", 9 + "Bash(timeout 8 pnpm dev:*)", 10 + "Bash(git checkout:*)", 11 + "Bash(npx svelte-kit:*)", 12 + "Bash(ls:*)", 13 + "Bash(pnpm format:*)", 14 + "Bash(pnpm add:*)", 15 + "WebSearch", 16 + "WebFetch(domain:github.com)", 17 + "WebFetch(domain:flipclockjs.com)", 18 + "WebFetch(domain:codepen.io)", 19 + "WebFetch(domain:flo-bit.dev)", 20 + "Bash(pnpm install)", 21 + "Bash(pnpm install:*)", 22 + "Bash(pnpm config:*)", 23 + "Bash(lsof:*)", 24 + "Bash(pnpm dev)", 25 + "Bash(pnpm exec svelte-kit:*)", 26 + "Bash(pnpm build:*)", 27 + "Bash(pnpm remove:*)", 28 + "Bash(grep:*)", 29 + "Bash(find:*)", 30 + "Bash(npx prettier:*)" 31 + ] 32 + } 33 33 }
+1 -4
src/lib/cards/FriendsCard/FriendsCard.svelte
··· 83 83 {@const olX = sizeClass === 'sm' ? 12 : sizeClass === 'md' ? 20 : 24} 84 84 {@const olY = sizeClass === 'sm' ? 8 : sizeClass === 'md' ? 12 : 16} 85 85 <div class=""> 86 - <div 87 - class="flex flex-wrap items-center justify-center" 88 - style="padding: {olY}px 0 0 {olX}px;" 89 - > 86 + <div class="flex flex-wrap items-center justify-center" style="padding: {olY}px 0 0 {olX}px;"> 90 87 {#each profiles as profile (profile.did)} 91 88 <a 92 89 href={getLink(profile)}
+3 -13
src/lib/cards/FriendsCard/FriendsCardSettings.svelte
··· 25 25 const results = await Promise.all( 26 26 dids.map((did) => getBlentoOrBskyProfile({ did: did as Did }).catch(() => undefined)) 27 27 ); 28 - profiles = results.filter( 29 - (p): p is FriendsProfile => !!p && p.handle !== 'handle.invalid' 30 - ); 28 + profiles = results.filter((p): p is FriendsProfile => !!p && p.handle !== 'handle.invalid'); 31 29 } 32 30 33 31 function addFriend(actor: AppBskyActorDefs.ProfileViewBasic) { ··· 68 66 {#each dids as did (did)} 69 67 {@const profile = getProfile(did)} 70 68 <div class="flex items-center gap-2"> 71 - <Avatar 72 - src={profile?.avatar} 73 - alt={profile?.handle ?? did} 74 - class="size-6 rounded-full" 75 - /> 69 + <Avatar src={profile?.avatar} alt={profile?.handle ?? did} class="size-6 rounded-full" /> 76 70 <span class="min-w-0 flex-1 truncate text-sm"> 77 71 {profile?.handle ?? did} 78 72 </span> ··· 90 84 stroke="currentColor" 91 85 class="size-3.5" 92 86 > 93 - <path 94 - stroke-linecap="round" 95 - stroke-linejoin="round" 96 - d="M6 18 18 6M6 6l12 12" 97 - /> 87 + <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" /> 98 88 </svg> 99 89 </Button> 100 90 </div>
+1 -3
src/lib/cards/FriendsCard/index.ts
··· 27 27 if (allDids.size === 0) return []; 28 28 29 29 const profiles = await Promise.all( 30 - Array.from(allDids).map((did) => 31 - getBlentoOrBskyProfile({ did }).catch(() => undefined) 32 - ) 30 + Array.from(allDids).map((did) => getBlentoOrBskyProfile({ did }).catch(() => undefined)) 33 31 ); 34 32 return profiles.filter((p) => p && p.handle !== 'handle.invalid'); 35 33 },
+2 -1
src/lib/website/EditableWebsite.svelte
··· 42 42 import Controls from './Controls.svelte'; 43 43 import CardCommand from '$lib/components/card-command/CardCommand.svelte'; 44 44 import { shouldMirror, mirrorLayout } from './layout-mirror'; 45 + import { SvelteMap } from 'svelte/reactivity'; 45 46 46 47 let { 47 48 data ··· 262 263 263 264 function addAllCardTypes() { 264 265 const groupOrder = ['Core', 'Social', 'Media', 'Content', 'Visual', 'Utilities', 'Games']; 265 - const grouped = new Map<string, CardDefinition[]>(); 266 + const grouped = new SvelteMap<string, CardDefinition[]>(); 266 267 267 268 for (const def of AllCardDefinitions) { 268 269 if (!def.name) continue;