tangled
alpha
login
or
join now
vielle.dev
/
pdsls
forked from
pds.ls/pdsls
0
fork
atom
atproto explorer
0
fork
atom
overview
issues
pulls
pipelines
zinc -> neutral
handle.invalid
6 months ago
51e52a10
4b3c3b56
+18
-18
13 changed files
expand all
collapse all
unified
split
index.html
src
components
account.tsx
button.tsx
create.tsx
json.tsx
settings.tsx
layout.tsx
views
blob.tsx
collection.tsx
labels.tsx
pds.tsx
record.tsx
repo.tsx
+1
-1
index.html
···
20
20
<script src="/src/index.tsx" type="module"></script>
21
21
</head>
22
22
23
23
-
<body id="root" class="dark:bg-dark-500 bg-zinc-100">
23
23
+
<body id="root" class="dark:bg-dark-500 bg-neutral-100">
24
24
<noscript>You need to enable JavaScript to run this app.</noscript>
25
25
</body>
26
26
</html>
+2
-2
src/components/account.tsx
···
68
68
return (
69
69
<>
70
70
<Modal open={openManager()} onClose={() => setOpenManager(false)}>
71
71
-
<div class="starting:opacity-0 dark:bg-dark-800/70 border-0.5 w-22rem dark:shadow-dark-900/80 backdrop-blur-xs left-50% absolute top-12 -translate-x-1/2 rounded-md border-neutral-300 bg-zinc-200/70 p-4 text-neutral-900 shadow-md transition-opacity duration-300 dark:border-neutral-700 dark:text-neutral-200">
71
71
+
<div class="starting:opacity-0 dark:bg-dark-800/70 border-0.5 w-22rem dark:shadow-dark-900/80 backdrop-blur-xs left-50% absolute top-12 -translate-x-1/2 rounded-md border-neutral-300 bg-neutral-200/70 p-4 text-neutral-900 shadow-md transition-opacity duration-300 dark:border-neutral-700 dark:text-neutral-200">
72
72
<div class="mb-2 flex items-center gap-1 font-bold">
73
73
<div class="i-lucide-user-round" />
74
74
<span>Manage accounts</span>
···
78
78
{(did) => (
79
79
<div class="group/select flex w-full items-center justify-between gap-x-2">
80
80
<button
81
81
-
class="flex basis-full items-center justify-between gap-1 truncate rounded bg-transparent px-1 text-left group-hover/select:bg-zinc-100 dark:group-hover/select:bg-neutral-600"
81
81
+
class="flex basis-full items-center justify-between gap-1 truncate rounded bg-transparent px-1 text-left group-hover/select:bg-neutral-100 dark:group-hover/select:bg-neutral-600"
82
82
onclick={() => resumeSession(did as Did)}
83
83
>
84
84
<span class="truncate">{sessions[did]?.length ? sessions[did] : did}</span>
+1
-1
src/components/button.tsx
···
12
12
type="button"
13
13
class={
14
14
props.class ??
15
15
-
"dark:hover:bg-dark-100 dark:bg-dark-300 dark:shadow-dark-900/80 flex items-center gap-1 rounded-lg bg-white px-2 py-1.5 text-xs font-bold shadow-sm hover:bg-zinc-200"
15
15
+
"dark:hover:bg-dark-100 dark:bg-dark-300 dark:shadow-dark-900/80 flex items-center gap-1 rounded-lg bg-white px-2 py-1.5 text-xs font-bold shadow-sm hover:bg-neutral-200"
16
16
}
17
17
onClick={props.onClick}
18
18
>
+2
-2
src/components/create.tsx
···
173
173
return (
174
174
<>
175
175
<Modal open={openDialog()} onClose={() => setOpenDialog(false)}>
176
176
-
<div class="w-22rem sm:w-xl lg:w-48rem starting:opacity-0 dark:bg-dark-800/70 left-50% backdrop-blur-xs border-0.5 dark:shadow-dark-900/80 absolute top-12 -translate-x-1/2 rounded-md border-neutral-300 bg-zinc-200/70 p-2 text-neutral-900 shadow-md transition-opacity duration-300 sm:p-4 dark:border-neutral-700 dark:text-neutral-200">
176
176
+
<div class="w-22rem sm:w-xl lg:w-48rem starting:opacity-0 dark:bg-dark-800/70 left-50% backdrop-blur-xs border-0.5 dark:shadow-dark-900/80 absolute top-12 -translate-x-1/2 rounded-md border-neutral-300 bg-neutral-200/70 p-2 text-neutral-900 shadow-md transition-opacity duration-300 sm:p-4 dark:border-neutral-700 dark:text-neutral-200">
177
177
<div class="mb-2 flex w-full justify-between">
178
178
<div class="flex items-center gap-1 font-bold">
179
179
<div class="i-lucide-square-pen" />
···
221
221
</div>
222
222
<div class="flex items-center gap-2">
223
223
<Show when={!uploading()}>
224
224
-
<div class="dark:hover:bg-dark-100 dark:bg-dark-300 dark:shadow-dark-900/80 flex rounded-lg bg-white text-xs font-bold shadow-sm hover:bg-zinc-100">
224
224
+
<div class="dark:hover:bg-dark-100 dark:bg-dark-300 dark:shadow-dark-900/80 flex rounded-lg bg-white text-xs font-bold shadow-sm hover:bg-neutral-100">
225
225
<input type="file" id="blob" hidden onChange={() => uploadBlob()} />
226
226
<label class="flex items-center gap-1 px-2 py-1.5" for="blob">
227
227
<div class="i-lucide-upload text-sm" />
+1
-1
src/components/json.tsx
···
97
97
>
98
98
<span
99
99
classList={{
100
100
-
"dark:bg-dark-500 absolute w-5 -left-5 bg-zinc-100 text-sm": true,
100
100
+
"dark:bg-dark-500 absolute w-5 -left-5 bg-neutral-100 text-sm": true,
101
101
"hidden group-hover/clip:block": show(),
102
102
}}
103
103
>
+1
-1
src/components/settings.tsx
···
53
53
return (
54
54
<>
55
55
<Modal open={openSettings()} onClose={() => setOpenSettings(false)}>
56
56
-
<div class="starting:opacity-0 w-22rem dark:bg-dark-800/70 border-0.5 dark:shadow-dark-900/80 backdrop-blur-xs left-50% absolute top-12 -translate-x-1/2 rounded-md border-neutral-300 bg-zinc-200/70 p-4 text-neutral-900 shadow-md transition-opacity duration-300 dark:border-neutral-700 dark:text-neutral-200">
56
56
+
<div class="starting:opacity-0 w-22rem dark:bg-dark-800/70 border-0.5 dark:shadow-dark-900/80 backdrop-blur-xs left-50% absolute top-12 -translate-x-1/2 rounded-md border-neutral-300 bg-neutral-200/70 p-4 text-neutral-900 shadow-md transition-opacity duration-300 dark:border-neutral-700 dark:text-neutral-200">
57
57
<div class="mb-3 flex items-center gap-1 font-bold">
58
58
<div class="i-lucide-settings" />
59
59
<span>Settings</span>
+2
-2
src/layout.tsx
···
78
78
<Settings />
79
79
</div>
80
80
</div>
81
81
-
<div class="min-w-22rem sm:min-w-24rem z-1 dark:bg-dark-500 mb-4 flex max-w-full flex-col items-center text-pretty bg-zinc-100 md:max-w-screen-md">
81
81
+
<div class="min-w-22rem sm:min-w-24rem z-1 dark:bg-dark-500 mb-4 flex max-w-full flex-col items-center text-pretty bg-neutral-100 md:max-w-screen-md">
82
82
<Show when={location.pathname !== "/jetstream" && location.pathname !== "/firehose"}>
83
83
<Search />
84
84
</Show>
···
100
100
</Show>
101
101
</div>
102
102
<Show when={copyNotice()}>
103
103
-
<div class="backdrop-blur-xs border-0.5 dark:shadow-dark-900/80 dark:bg-dark-100/70 fixed bottom-10 z-50 flex items-center rounded-lg border-neutral-300 bg-zinc-100/70 p-2 shadow-md dark:border-neutral-700">
103
103
+
<div class="backdrop-blur-xs border-0.5 dark:shadow-dark-900/80 dark:bg-dark-100/70 fixed bottom-10 z-50 flex items-center rounded-lg border-neutral-300 bg-neutral-100/70 p-2 shadow-md dark:border-neutral-700">
104
104
<div class="i-lucide-clipboard-check mr-1 text-xl" />
105
105
Copied to clipboard
106
106
</div>
+1
-1
src/views/blob.tsx
···
42
42
<a
43
43
href={`${props.pds}/xrpc/com.atproto.sync.getBlob?did=${props.repo}&cid=${cid}`}
44
44
target="_blank"
45
45
-
class="rounded px-0.5 hover:bg-zinc-200 dark:hover:bg-neutral-700"
45
45
+
class="rounded px-0.5 hover:bg-neutral-200 dark:hover:bg-neutral-700"
46
46
>
47
47
<span class="text-blue-400">{cid}</span>
48
48
</a>
+3
-3
src/views/collection.tsx
···
37
37
38
38
return (
39
39
<span
40
40
-
class="relative flex items-baseline rounded px-0.5 hover:bg-zinc-200 dark:hover:bg-neutral-700"
40
40
+
class="relative flex items-baseline rounded px-0.5 hover:bg-neutral-200 dark:hover:bg-neutral-700"
41
41
ref={rkeyRef}
42
42
onmouseover={() => setHover(true)}
43
43
onmouseleave={() => setHover(false)}
···
51
51
<Show when={hover()}>
52
52
<span
53
53
ref={previewRef}
54
54
-
class={`dark:bg-dark-500/70 left-50% max-h-md z-25 backdrop-blur-xs border-0.5 dark:shadow-dark-900/80 pointer-events-none absolute block w-max max-w-sm -translate-x-1/2 overflow-hidden whitespace-pre-wrap rounded-md border-neutral-300 bg-zinc-100/70 p-2 text-xs shadow-md lg:max-w-lg dark:border-neutral-700 ${isOverflowing(previewHeight()) ? "bottom-7" : "top-7"}`}
54
54
+
class={`dark:bg-dark-500/70 left-50% max-h-md z-25 backdrop-blur-xs border-0.5 dark:shadow-dark-900/80 pointer-events-none absolute block w-max max-w-sm -translate-x-1/2 overflow-hidden whitespace-pre-wrap rounded-md border-neutral-300 bg-neutral-100/70 p-2 text-xs shadow-md lg:max-w-lg dark:border-neutral-700 ${isOverflowing(previewHeight()) ? "bottom-7" : "top-7"}`}
55
55
>
56
56
<JSONValue
57
57
data={props.record.record.value as JSONType}
···
161
161
162
162
return (
163
163
<Show when={records.length || response()}>
164
164
-
<div class="z-5 dark:bg-dark-500/70 backdrop-blur-xs sticky top-0 flex w-screen flex-col items-center justify-center gap-2 bg-zinc-100/70 py-3">
164
164
+
<div class="z-5 dark:bg-dark-500/70 backdrop-blur-xs sticky top-0 flex w-screen flex-col items-center justify-center gap-2 bg-neutral-100/70 py-3">
165
165
<div class="w-22rem sm:w-24rem flex items-center gap-2">
166
166
<Show when={agent() && agent()?.sub === did}>
167
167
<div class="flex items-center gap-x-2">
+1
-1
src/views/labels.tsx
···
87
87
</div>
88
88
</div>
89
89
</form>
90
90
-
<div class="z-5 dark:bg-dark-500/70 backdrop-blur-xs sticky top-0 flex w-screen flex-col items-center justify-center gap-3 bg-zinc-100/70 py-3">
90
90
+
<div class="z-5 dark:bg-dark-500/70 backdrop-blur-xs sticky top-0 flex w-screen flex-col items-center justify-center gap-3 bg-neutral-100/70 py-3">
91
91
<TextInput
92
92
placeholder="Filter by label"
93
93
onInput={(e) => setFilter(e.currentTarget.value)}
+1
-1
src/views/pds.tsx
···
125
125
<A
126
126
href={`/at://${repo.did}`}
127
127
classList={{
128
128
-
"rounded items-center text-sm gap-1 flex justify-between font-mono relative hover:bg-zinc-200 dark:hover:bg-neutral-700": true,
128
128
+
"rounded items-center text-sm gap-1 flex justify-between font-mono relative hover:bg-neutral-200 dark:hover:bg-neutral-700": true,
129
129
"text-blue-400": repo.active,
130
130
"text-neutral-400 dark:text-neutral-500": !repo.active,
131
131
}}
+1
-1
src/views/record.tsx
···
135
135
</button>
136
136
</Tooltip>
137
137
<Modal open={openDelete()} onClose={() => setOpenDelete(false)}>
138
138
-
<div class="starting:opacity-0 dark:bg-dark-800/70 border-0.5 dark:shadow-dark-900/80 backdrop-blur-xs left-50% top-70 absolute -translate-x-1/2 rounded-md border-neutral-300 bg-zinc-200/70 p-4 text-neutral-900 shadow-md transition-opacity duration-300 dark:border-neutral-700 dark:text-neutral-200">
138
138
+
<div class="starting:opacity-0 dark:bg-dark-800/70 border-0.5 dark:shadow-dark-900/80 backdrop-blur-xs left-50% top-70 absolute -translate-x-1/2 rounded-md border-neutral-300 bg-neutral-200/70 p-4 text-neutral-900 shadow-md transition-opacity duration-300 dark:border-neutral-700 dark:text-neutral-200">
139
139
<h2 class="mb-2 font-bold">Delete this record?</h2>
140
140
<div class="flex justify-end gap-2">
141
141
<Button onClick={() => setOpenDelete(false)}>Cancel</Button>
+1
-1
src/views/repo.tsx
···
173
173
classList={{
174
174
"rounded-full text-xs flex flex-1 items-center gap-0.5 py-1.5 justify-center": true,
175
175
"bg-white dark:bg-dark-300 shadow-sm dark:shadow-dark-900/80": tab() === props.tab,
176
176
-
"bg-transparent hover:bg-zinc-200 dark:hover:bg-dark-200": tab() !== props.tab,
176
176
+
"bg-transparent hover:bg-neutral-200 dark:hover:bg-dark-200": tab() !== props.tab,
177
177
}}
178
178
onclick={() => setTab(props.tab)}
179
179
>