alpha
Login
or
Join now
pds.dad
/
puzzle-me-this
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
This repository has no description
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
re worked mobile bars
author
pds.dad
date
3 weeks ago
(Jul 3, 2026, 5:26 PM -0500)
commit
eb98e52a
eb98e52a759a6374c5f3fde504de61a6282d7963
parent
3744219f
3744219fc61144d87d37de5bbaecb6c9267ecc9a
change-id
wwplqwkz
wwplqwkzpyovzomturznuktnuvwstkzo
+20
-12
3 changed files
Expand all
Collapse all
Unified
Split
client
src
lib
components
PuzzlePlayer.svelte
routes
ranked
+page.svelte
vite.config.ts
+13
-7
client/src/lib/components/PuzzlePlayer.svelte
View file
Reviewed
···
150
150
{/if}
151
151
152
152
{#if done}
153
153
-
<div class="card-actions items-center justify-between">
154
154
-
<div class="flex flex-col gap-0.5">
153
153
+
<div class="flex flex-col-reverse gap-3 sm:flex-row sm:items-center sm:justify-between">
154
154
+
<div
155
155
+
class="flex flex-wrap items-center gap-x-3 gap-y-0.5 sm:flex-col sm:items-start sm:gap-0.5"
156
156
+
>
155
157
<a
156
158
class="link text-sm font-medium"
157
159
href="https://lichess.org/training/{puzzle.id}"
···
167
169
>
168
170
{/if}
169
171
</div>
170
170
-
<div class="flex flex-wrap items-center justify-end gap-2">
172
172
+
<div class="flex w-full flex-wrap items-center justify-end gap-2 sm:w-auto">
171
173
{#if engine.status === 'win'}
172
174
<a
173
173
-
class="btn btn-outline sm:btn-sm"
175
175
+
class="btn btn-outline btn-sm grow sm:grow-0"
174
176
href={shareHref}
175
177
target="_blank"
176
178
rel="external noopener noreferrer"
···
184
186
</a>
185
187
{/if}
186
188
{#if engine.status === 'fail' && !engine.replaying}
187
187
-
<button class="btn btn-outline sm:btn-sm" onclick={() => engine.replaySolution()}>
189
189
+
<button
190
190
+
class="btn btn-outline btn-sm grow sm:grow-0"
191
191
+
onclick={() => engine.replaySolution()}
192
192
+
>
188
193
Show solution
189
194
</button>
190
195
{/if}
191
196
{#if footer}{@render footer()}{/if}
192
197
{#if onRetry}
193
193
-
<button class="btn sm:btn-sm" onclick={() => onRetry()}>Try again</button>
198
198
+
<button class="btn btn-sm grow sm:grow-0" onclick={() => onRetry()}>Try again</button>
194
199
{/if}
195
200
{#if onNext}
196
196
-
<button class="btn btn-primary sm:btn-sm" onclick={() => onNext()}>Next puzzle</button
201
201
+
<button class="btn btn-primary btn-sm grow sm:grow-0" onclick={() => onNext()}
202
202
+
>Next puzzle</button
197
203
>
198
204
{/if}
199
205
</div>
+6
-4
client/src/routes/ranked/+page.svelte
View file
Reviewed
···
105
105
106
106
{#snippet footer()}
107
107
{#if phase === 'submitting'}
108
108
-
<span class="flex items-center gap-2 text-sm opacity-70">
108
108
+
<span
109
109
+
class="flex basis-full items-center justify-center gap-2 text-sm opacity-70 sm:basis-auto sm:justify-start"
110
110
+
>
109
111
<span class="loading loading-spinner loading-xs"></span> Scoring…
110
112
</span>
111
113
{:else if outcome}
112
112
-
<span class="flex items-center gap-2">
114
114
+
<span class="flex basis-full items-center justify-center gap-2 sm:basis-auto sm:justify-start">
113
115
{#if !outcome.ranked}
114
116
<span class="badge badge-ghost">not rated</span>
115
117
{/if}
···
135
137
{/if}
136
138
</span>
137
139
<button
138
138
-
class="btn btn-ghost sm:btn-sm"
140
140
+
class="btn btn-ghost btn-sm grow sm:grow-0"
139
141
onclick={() => casualReplay++}
140
142
title="Replay this puzzle as casual practice — won't affect your rating"
141
143
>
142
144
Try again
143
145
</button>
144
144
-
<button class="btn btn-primary sm:btn-sm" onclick={loadNext}>Next puzzle</button>
146
146
+
<button class="btn btn-primary btn-sm grow sm:grow-0" onclick={loadNext}>Next puzzle</button>
145
147
{/if}
146
148
{/snippet}
147
149
+1
-1
client/vite.config.ts
View file
Reviewed
···
8
8
// auth.svelte.ts). Vite's default `localhost` host resolves to IPv6 [::1]
9
9
// only on macOS, so serving on IPv4 127.0.0.1 is required — otherwise the
10
10
// client redirects the page to 127.0.0.1 and nothing is listening there.
11
11
-
server: { host: '127.0.0.1', allowedHosts: ['client.pds.dad'] },
11
11
+
server: { host: '127.0.0.1' },
12
12
plugins: [
13
13
tailwindcss(),
14
14
sveltekit({