+1
-1
deno.json
+1
-1
deno.json
···
2
2
"imports": {
3
3
"$lexicon/": "./__generated__/",
4
4
"@atproto/syntax": "npm:@atproto/syntax@^0.4.0",
5
-
"@bigmoves/bff": "jsr:@bigmoves/bff@0.3.0-beta.12",
5
+
"@bigmoves/bff": "jsr:@bigmoves/bff@0.3.0-beta.14",
6
6
"@gfx/canvas": "jsr:@gfx/canvas@^0.5.8",
7
7
"@std/path": "jsr:@std/path@^1.0.9",
8
8
"@tailwindcss/cli": "npm:@tailwindcss/cli@^4.1.4",
+210
-8
deno.lock
+210
-8
deno.lock
···
1
1
{
2
2
"version": "4",
3
3
"specifiers": {
4
-
"jsr:@bigmoves/atproto-oauth-client@0.1": "0.1.0",
5
-
"jsr:@bigmoves/bff@0.3.0-beta.12": "0.3.0-beta.12",
4
+
"jsr:@bigmoves/atproto-oauth-client@0.2": "0.2.0",
5
+
"jsr:@bigmoves/bff@0.3.0-beta.14": "0.3.0-beta.14",
6
+
"jsr:@deno/gfm@0.10": "0.10.0",
7
+
"jsr:@denosaurs/emoji@0.3": "0.3.1",
6
8
"jsr:@denosaurs/plug@1": "1.0.5",
7
9
"jsr:@denosaurs/plug@1.0.5": "1.0.5",
8
10
"jsr:@gfx/canvas@~0.5.8": "0.5.8",
9
11
"jsr:@std/assert@0.214": "0.214.0",
10
12
"jsr:@std/assert@0.217": "0.217.0",
13
+
"jsr:@std/assert@^1.0.12": "1.0.13",
11
14
"jsr:@std/assert@^1.0.13": "1.0.13",
15
+
"jsr:@std/async@^1.0.12": "1.0.12",
12
16
"jsr:@std/cache@0.2": "0.2.0",
13
17
"jsr:@std/cli@^1.0.17": "1.0.17",
18
+
"jsr:@std/data-structures@^1.0.6": "1.0.7",
14
19
"jsr:@std/encoding@0.214": "0.214.0",
15
20
"jsr:@std/encoding@0.217.0": "0.217.0",
16
21
"jsr:@std/encoding@^1.0.10": "1.0.10",
···
18
23
"jsr:@std/fmt@^1.0.8": "1.0.8",
19
24
"jsr:@std/fs@0.214": "0.214.0",
20
25
"jsr:@std/fs@0.217.0": "0.217.0",
26
+
"jsr:@std/fs@^1.0.15": "1.0.17",
27
+
"jsr:@std/fs@^1.0.16": "1.0.17",
21
28
"jsr:@std/html@^1.0.4": "1.0.4",
22
29
"jsr:@std/http@^1.0.13": "1.0.16",
23
30
"jsr:@std/internal@^1.0.6": "1.0.7",
···
29
36
"jsr:@std/path@^1.0.8": "1.0.9",
30
37
"jsr:@std/path@^1.0.9": "1.0.9",
31
38
"jsr:@std/streams@^1.0.9": "1.0.9",
39
+
"jsr:@std/testing@^1.0.11": "1.0.11",
32
40
"npm:@atproto-labs/handle-resolver-node@~0.1.14": "0.1.14",
33
41
"npm:@atproto-labs/simple-store@~0.1.2": "0.1.2",
34
42
"npm:@atproto/api@~0.14.19": "0.14.22",
···
42
50
"npm:@atproto/oauth-types@~0.2.4": "0.2.4",
43
51
"npm:@atproto/syntax@0.4": "0.4.0",
44
52
"npm:@atproto/xrpc-server@*": "0.7.15",
53
+
"npm:@skyware/jetstream@~0.2.2": "0.2.2",
45
54
"npm:@tailwindcss/cli@*": "4.1.4",
55
+
"npm:@tailwindcss/cli@^4.0.12": "4.1.4",
56
+
"npm:@tailwindcss/cli@^4.1.3": "4.1.4",
46
57
"npm:@tailwindcss/cli@^4.1.4": "4.1.4",
47
58
"npm:@types/node@*": "22.12.0",
48
59
"npm:clsx@^2.1.1": "2.1.1",
49
60
"npm:date-fns@^4.1.0": "4.1.0",
61
+
"npm:github-slugger@2": "2.0.0",
62
+
"npm:he@^1.2.0": "1.2.0",
50
63
"npm:jose@5.9.6": "5.9.6",
64
+
"npm:katex@0.16": "0.16.22",
65
+
"npm:marked-alert@2": "2.1.2_marked@12.0.2",
66
+
"npm:marked-footnote@^1.2.0": "1.2.4_marked@12.0.2",
67
+
"npm:marked-gfm-heading-id@^3.1.0": "3.2.0_marked@12.0.2",
68
+
"npm:marked@12": "12.0.2",
51
69
"npm:multiformats@*": "9.9.0",
52
70
"npm:multiformats@^13.3.2": "13.3.2",
53
71
"npm:popmotion@^11.0.5": "11.0.5",
54
72
"npm:preact-render-to-string@^6.5.13": "6.5.13_preact@10.26.5",
55
73
"npm:preact@^10.26.5": "10.26.5",
74
+
"npm:prismjs@^1.29.0": "1.30.0",
75
+
"npm:sanitize-html@^2.13.0": "2.15.0",
56
76
"npm:sharp@~0.34.1": "0.34.1",
57
77
"npm:tailwind-merge@^3.2.0": "3.2.0",
78
+
"npm:tailwindcss@^4.0.12": "4.1.4",
79
+
"npm:tailwindcss@^4.1.3": "4.1.4",
58
80
"npm:tailwindcss@^4.1.4": "4.1.4",
59
81
"npm:typed-htmx@~0.3.1": "0.3.1"
60
82
},
61
83
"jsr": {
62
-
"@bigmoves/atproto-oauth-client@0.1.0": {
63
-
"integrity": "d5858f534a800a46af28b1c03b447b179d15bbf164c24767601ae78513501711",
84
+
"@bigmoves/atproto-oauth-client@0.2.0": {
85
+
"integrity": "5c3ca124dd52eff51dace83790779ebe48c4b41559b799e16c8750bd415f2124",
64
86
"dependencies": [
65
87
"npm:@atproto-labs/handle-resolver-node",
66
88
"npm:@atproto-labs/simple-store",
···
70
92
"npm:jose"
71
93
]
72
94
},
73
-
"@bigmoves/bff@0.3.0-beta.12": {
74
-
"integrity": "26d404d3db39d2fa187e36a97ebd244ff648152d0820e17b1a2b993da4fbf34b",
95
+
"@bigmoves/bff@0.3.0-beta.14": {
96
+
"integrity": "2b94d1f58c9b035cb2a50e3161953ab5c8c158caf902eccd89ae0beb2db60edc",
75
97
"dependencies": [
76
98
"jsr:@bigmoves/atproto-oauth-client",
77
99
"jsr:@std/assert@^1.0.13",
···
91
113
"npm:tailwind-merge"
92
114
]
93
115
},
116
+
"@deno/gfm@0.10.0": {
117
+
"integrity": "51708205e3559a4aeb6afb29d07c5bfafe7941f91bb360351ef6621de9a39527",
118
+
"dependencies": [
119
+
"jsr:@denosaurs/emoji",
120
+
"npm:github-slugger",
121
+
"npm:he",
122
+
"npm:katex",
123
+
"npm:marked",
124
+
"npm:marked-alert",
125
+
"npm:marked-footnote",
126
+
"npm:marked-gfm-heading-id",
127
+
"npm:prismjs",
128
+
"npm:sanitize-html"
129
+
]
130
+
},
131
+
"@denosaurs/emoji@0.3.1": {
132
+
"integrity": "b0aed5f55dec99e83da7c9637fe0a36d1d6252b7c99deaaa3fc5dea3fcf3da8b"
133
+
},
94
134
"@denosaurs/plug@1.0.5": {
95
135
"integrity": "04cd988da558adc226202d88c3a434d5fcc08146eaf4baf0cea0c2284b16d2bf",
96
136
"dependencies": [
···
121
161
"dependencies": [
122
162
"jsr:@std/internal"
123
163
]
164
+
},
165
+
"@std/async@1.0.12": {
166
+
"integrity": "d1bfcec459e8012846fe4e38dfc4241ab23240ecda3d8d6dfcf6d81a632e803d"
124
167
},
125
168
"@std/cache@0.2.0": {
126
169
"integrity": "63a2ccd5a9e7c03e430f7d34dfcfd0d0cfc90731a1eaf8208f4c66e418fc3035"
···
128
171
"@std/cli@1.0.17": {
129
172
"integrity": "e15b9abe629e17be90cc6216327f03a29eae613365f1353837fa749aad29ce7b"
130
173
},
174
+
"@std/data-structures@1.0.7": {
175
+
"integrity": "16932d2c8d281f65eaaa2209af2473209881e33b1ced54cd1b015e7b4cdbb0d2"
176
+
},
131
177
"@std/encoding@0.214.0": {
132
178
"integrity": "30a8713e1db22986c7e780555ffd2fefd1d4f9374d734bb41f5970f6c3352af5"
133
179
},
···
155
201
"dependencies": [
156
202
"jsr:@std/assert@0.217",
157
203
"jsr:@std/path@0.217"
204
+
]
205
+
},
206
+
"@std/fs@1.0.17": {
207
+
"integrity": "1c00c632677c1158988ef7a004cb16137f870aafdb8163b9dce86ec652f3952b",
208
+
"dependencies": [
209
+
"jsr:@std/path@^1.0.9"
158
210
]
159
211
},
160
212
"@std/html@1.0.4": {
···
199
251
},
200
252
"@std/streams@1.0.9": {
201
253
"integrity": "a9d26b1988cdd7aa7b1f4b51e1c36c1557f3f252880fa6cc5b9f37078b1a5035"
254
+
},
255
+
"@std/testing@1.0.11": {
256
+
"integrity": "12b3db12d34f0f385a26248933bde766c0f8c5ad8b6ab34d4d38f528ab852f48",
257
+
"dependencies": [
258
+
"jsr:@std/assert@^1.0.12",
259
+
"jsr:@std/async",
260
+
"jsr:@std/data-structures",
261
+
"jsr:@std/fs@^1.0.16",
262
+
"jsr:@std/internal",
263
+
"jsr:@std/path@^1.0.8"
264
+
]
202
265
}
203
266
},
204
267
"npm": {
268
+
"@atcute/bluesky@1.0.15_@atcute+client@2.0.9": {
269
+
"integrity": "sha512-+EFiybmKQ97aBAgtaD+cKRJER5AMn3cZMkEwEg/pDdWyzxYJ9m1UgemmLdTgI8VrxPufKqdXS2nl7uO7TY6BPA==",
270
+
"dependencies": [
271
+
"@atcute/client"
272
+
]
273
+
},
274
+
"@atcute/client@2.0.9": {
275
+
"integrity": "sha512-QNDm9gMP6x9LY77ArwY+urQOBtQW74/onEAz42c40JxRm6Rl9K9cU4ROvNKJ+5cpVmEm1sthEWVRmDr5CSZENA=="
276
+
},
205
277
"@atproto-labs/did-resolver@0.1.11": {
206
278
"integrity": "sha512-qXNzIX2GPQnxT1gl35nv/8ErDdc4Fj/+RlJE7oyE7JGkFAPUyuY03TvKJ79SmWFsWE8wyTXEpLuphr9Da1Vhkw==",
207
279
"dependencies": [
···
334
406
"@atproto/lexicon",
335
407
"@atproto/syntax",
336
408
"chalk",
337
-
"commander",
409
+
"commander@9.5.0",
338
410
"prettier",
339
411
"ts-morph",
340
412
"yesno",
···
611
683
"node-addon-api"
612
684
]
613
685
},
686
+
"@skyware/jetstream@0.2.2": {
687
+
"integrity": "sha512-d1MtWPTIFEciSzV8OClXZCJoz0DJ7aupt4EZSwpGAASYG0ZIPmZTt7RVJkoFzQyqRPHAMD7CvEwu0ut3MHX1og==",
688
+
"dependencies": [
689
+
"@atcute/bluesky",
690
+
"partysocket"
691
+
]
692
+
},
614
693
"@tailwindcss/cli@4.1.4": {
615
694
"integrity": "sha512-gP05Qihh+cZ2FqD5fa0WJXx3KEk2YWUYv/RBKAyiOg0V4vYVDr/xlLc0sacpnVEXM45BVUR9U2hsESufYs6YTA==",
616
695
"dependencies": [
···
856
935
"color-convert",
857
936
"color-string"
858
937
]
938
+
},
939
+
"commander@8.3.0": {
940
+
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
859
941
},
860
942
"commander@9.5.0": {
861
943
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="
···
884
966
"ms@2.0.0"
885
967
]
886
968
},
969
+
"deepmerge@4.3.1": {
970
+
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
971
+
},
887
972
"depd@2.0.0": {
888
973
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
889
974
},
···
896
981
"detect-libc@2.0.3": {
897
982
"integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw=="
898
983
},
984
+
"dom-serializer@2.0.0": {
985
+
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
986
+
"dependencies": [
987
+
"domelementtype",
988
+
"domhandler",
989
+
"entities"
990
+
]
991
+
},
992
+
"domelementtype@2.3.0": {
993
+
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
994
+
},
995
+
"domhandler@5.0.3": {
996
+
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
997
+
"dependencies": [
998
+
"domelementtype"
999
+
]
1000
+
},
1001
+
"domutils@3.2.2": {
1002
+
"integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
1003
+
"dependencies": [
1004
+
"dom-serializer",
1005
+
"domelementtype",
1006
+
"domhandler"
1007
+
]
1008
+
},
899
1009
"dunder-proto@1.0.1": {
900
1010
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
901
1011
"dependencies": [
···
919
1029
"graceful-fs",
920
1030
"tapable"
921
1031
]
1032
+
},
1033
+
"entities@4.5.0": {
1034
+
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
922
1035
},
923
1036
"es-define-property@1.0.1": {
924
1037
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
···
935
1048
"escape-html@1.0.3": {
936
1049
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
937
1050
},
1051
+
"escape-string-regexp@4.0.0": {
1052
+
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
1053
+
},
938
1054
"etag@1.8.1": {
939
1055
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
1056
+
},
1057
+
"event-target-polyfill@0.0.4": {
1058
+
"integrity": "sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ=="
940
1059
},
941
1060
"event-target-shim@5.0.1": {
942
1061
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
···
1044
1163
"es-object-atoms"
1045
1164
]
1046
1165
},
1166
+
"github-slugger@2.0.0": {
1167
+
"integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="
1168
+
},
1047
1169
"gopd@1.2.0": {
1048
1170
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
1049
1171
},
···
1065
1187
"function-bind"
1066
1188
]
1067
1189
},
1190
+
"he@1.2.0": {
1191
+
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
1192
+
},
1068
1193
"hey-listen@1.0.8": {
1069
1194
"integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
1195
+
},
1196
+
"htmlparser2@8.0.2": {
1197
+
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
1198
+
"dependencies": [
1199
+
"domelementtype",
1200
+
"domhandler",
1201
+
"domutils",
1202
+
"entities"
1203
+
]
1070
1204
},
1071
1205
"http-errors@2.0.0": {
1072
1206
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
···
1110
1244
},
1111
1245
"is-number@7.0.0": {
1112
1246
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
1247
+
},
1248
+
"is-plain-object@5.0.0": {
1249
+
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
1113
1250
},
1114
1251
"iso-datestring-validator@2.2.2": {
1115
1252
"integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA=="
···
1120
1257
"jose@5.9.6": {
1121
1258
"integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ=="
1122
1259
},
1260
+
"katex@0.16.22": {
1261
+
"integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==",
1262
+
"dependencies": [
1263
+
"commander@8.3.0"
1264
+
]
1265
+
},
1123
1266
"lightningcss-darwin-arm64@1.29.2": {
1124
1267
"integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA=="
1125
1268
},
···
1169
1312
"lru-cache@10.4.3": {
1170
1313
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
1171
1314
},
1315
+
"marked-alert@2.1.2_marked@12.0.2": {
1316
+
"integrity": "sha512-EFNRZ08d8L/iEIPLTlQMDjvwIsj03gxWCczYTht6DCiHJIZhMk4NK5gtPY9UqAYb09eV5VGT+jD4lp396E0I+w==",
1317
+
"dependencies": [
1318
+
"marked"
1319
+
]
1320
+
},
1321
+
"marked-footnote@1.2.4_marked@12.0.2": {
1322
+
"integrity": "sha512-DB2Kl+wFh6YwZd70qABMY6WUkG1UuyqoNTFoDfGyG79Pz24neYtLBkB+45a7o72V7gkfvbC3CGzIYFobxfMT1Q==",
1323
+
"dependencies": [
1324
+
"marked"
1325
+
]
1326
+
},
1327
+
"marked-gfm-heading-id@3.2.0_marked@12.0.2": {
1328
+
"integrity": "sha512-Xfxpr5lXLDLY10XqzSCA9l2dDaiabQUgtYM9hw8yunyVsB/xYBRpiic6BOiY/EAJw1ik1eWr1ET1HKOAPZBhXg==",
1329
+
"dependencies": [
1330
+
"github-slugger",
1331
+
"marked"
1332
+
]
1333
+
},
1334
+
"marked@12.0.2": {
1335
+
"integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q=="
1336
+
},
1172
1337
"math-intrinsics@1.1.0": {
1173
1338
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="
1174
1339
},
···
1221
1386
"multiformats@9.9.0": {
1222
1387
"integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
1223
1388
},
1389
+
"nanoid@3.3.11": {
1390
+
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="
1391
+
},
1224
1392
"negotiator@0.6.3": {
1225
1393
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
1226
1394
},
···
1245
1413
"ee-first"
1246
1414
]
1247
1415
},
1416
+
"parse-srcset@1.0.2": {
1417
+
"integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q=="
1418
+
},
1248
1419
"parseurl@1.3.3": {
1249
1420
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1421
+
},
1422
+
"partysocket@1.1.3": {
1423
+
"integrity": "sha512-87Jd/nqPoWnVfzHE6Z12WLWTJ+TAgxs0b7i2S163HfQSrVDUK5tW/FC64T5N8L5ss+gqF+EV0BwjZMWggMY3UA==",
1424
+
"dependencies": [
1425
+
"event-target-polyfill"
1426
+
]
1250
1427
},
1251
1428
"path-browserify@1.0.1": {
1252
1429
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
···
1298
1475
"tslib@2.4.0"
1299
1476
]
1300
1477
},
1478
+
"postcss@8.5.3": {
1479
+
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
1480
+
"dependencies": [
1481
+
"nanoid",
1482
+
"picocolors",
1483
+
"source-map-js"
1484
+
]
1485
+
},
1301
1486
"preact-render-to-string@6.5.13_preact@10.26.5": {
1302
1487
"integrity": "sha512-iGPd+hKPMFKsfpR2vL4kJ6ZPcFIoWZEcBf0Dpm3zOpdVvj77aY8RlLiQji5OMrngEyaxGogeakTb54uS2FvA6w==",
1303
1488
"dependencies": [
···
1309
1494
},
1310
1495
"prettier@3.5.3": {
1311
1496
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw=="
1497
+
},
1498
+
"prismjs@1.30.0": {
1499
+
"integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="
1312
1500
},
1313
1501
"process-warning@3.0.0": {
1314
1502
"integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ=="
···
1378
1566
"safer-buffer@2.1.2": {
1379
1567
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1380
1568
},
1569
+
"sanitize-html@2.15.0": {
1570
+
"integrity": "sha512-wIjst57vJGpLyBP8ioUbg6ThwJie5SuSIjHxJg53v5Fg+kUK+AXlb7bK3RNXpp315MvwM+0OBGCV6h5pPHsVhA==",
1571
+
"dependencies": [
1572
+
"deepmerge",
1573
+
"escape-string-regexp",
1574
+
"htmlparser2",
1575
+
"is-plain-object",
1576
+
"parse-srcset",
1577
+
"postcss"
1578
+
]
1579
+
},
1381
1580
"semver@7.7.1": {
1382
1581
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="
1383
1582
},
···
1486
1685
"dependencies": [
1487
1686
"atomic-sleep"
1488
1687
]
1688
+
},
1689
+
"source-map-js@1.2.1": {
1690
+
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
1489
1691
},
1490
1692
"split2@4.2.0": {
1491
1693
"integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="
···
1608
1810
},
1609
1811
"workspace": {
1610
1812
"dependencies": [
1611
-
"jsr:@bigmoves/bff@0.3.0-beta.12",
1813
+
"jsr:@bigmoves/bff@0.3.0-beta.14",
1612
1814
"jsr:@gfx/canvas@~0.5.8",
1613
1815
"jsr:@std/path@^1.0.9",
1614
1816
"npm:@atproto/syntax@0.4",
+15
-9
main.tsx
+15
-9
main.tsx
···
120
120
<div
121
121
id="login"
122
122
class="flex justify-center items-center w-full h-full relative"
123
-
style="background-image: url('https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:bcgltzqazw5tb6k2g3ttenbj/bafkreiewhwu3ro5dv7omedphb62db4koa7qtvyzfhiiypg3ru4tvuxkrjy@webp'); background-size: cover; background-position: center;"
123
+
style="background-image: url('https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:bcgltzqazw5tb6k2g3ttenbj/bafkreiewhwu3ro5dv7omedphb62db4koa7qtvyzfhiiypg3ru4tvuxkrjy@jpeg'); background-size: cover; background-position: center;"
124
124
>
125
125
<Login hx-target="#login" error={error} errorClass="text-white" />
126
126
<div class="absolute bottom-2 right-2 text-white text-sm">
···
1541
1541
}>) {
1542
1542
return (
1543
1543
<Dialog>
1544
-
<Dialog.Content class="dark:bg-zinc-950">
1544
+
<Dialog.Content class="dark:bg-zinc-950 relative">
1545
+
<Dialog.X class="fill-zinc-950 dark:fill-zinc-50" />
1545
1546
<Dialog.Title>Edit my profile</Dialog.Title>
1546
1547
<div>
1547
1548
<AvatarForm src={profile.avatar} alt={profile.handle} />
···
1563
1564
name="displayName"
1564
1565
class="dark:bg-zinc-800 dark:text-white"
1565
1566
value={profile.displayName}
1567
+
autoFocus
1566
1568
/>
1567
1569
</div>
1568
1570
<div class="mb-4 relative">
···
1906
1908
}: Readonly<{ gallery?: GalleryView | null }>) {
1907
1909
return (
1908
1910
<Dialog id="gallery-dialog" class="z-30">
1909
-
<Dialog.Content class="dark:bg-zinc-950">
1911
+
<Dialog.Content class="dark:bg-zinc-950 relative">
1912
+
<Dialog.X class="fill-zinc-950 dark:fill-zinc-50" />
1910
1913
<Dialog.Title>
1911
1914
{gallery ? "Edit gallery" : "Create a new gallery"}
1912
1915
</Dialog.Title>
···
2031
2034
}: Readonly<{ photoUri: string }>) {
2032
2035
return (
2033
2036
<div
2034
-
class="bg-zinc-950 dark:bg-zinc-950 py-[1px] px-[3px] absolute top-1 left-1 sm:top-1 sm:left-1 cursor-pointer flex items-center justify-center text-xs text-white font-semibold z-10"
2037
+
class="bg-zinc-950 dark:bg-zinc-950 py-[1px] px-[3px] absolute top-2 left-2 cursor-pointer flex items-center justify-center text-xs text-white font-semibold z-10"
2035
2038
hx-get={`/dialogs/photo/${new AtUri(photoUri).rkey}/alt`}
2036
2039
hx-trigger="click"
2037
2040
hx-target="#layout"
···
2056
2059
}>) {
2057
2060
return (
2058
2061
<Dialog id="photo-dialog" class="bg-zinc-950 z-30">
2062
+
<Dialog.X />
2059
2063
{nextImage
2060
2064
? (
2061
2065
<div
···
2106
2110
}>) {
2107
2111
return (
2108
2112
<Dialog id="photo-alt-dialog" class="z-30">
2109
-
<Dialog.Content class="dark:bg-zinc-950">
2113
+
<Dialog.Content class="dark:bg-zinc-950 relative">
2114
+
<Dialog.X class="fill-zinc-950 dark:fill-zinc-50" />
2110
2115
<Dialog.Title>Add alt text</Dialog.Title>
2111
2116
<div class="aspect-square relative">
2112
2117
<img
···
2154
2159
}>) {
2155
2160
return (
2156
2161
<Dialog id="photo-select-dialog" class="z-30">
2157
-
<Dialog.Content class="w-full max-w-5xl dark:bg-zinc-950 sm:min-h-screen flex flex-col">
2162
+
<Dialog.Content class="w-full max-w-5xl dark:bg-zinc-950 sm:min-h-screen flex flex-col relative">
2163
+
<Dialog.X class="fill-zinc-950 dark:fill-zinc-50" />
2158
2164
<Dialog.Title>Add photos</Dialog.Title>
2159
2165
{photos.length
2160
2166
? (
···
2166
2172
: null}
2167
2173
{photos.length
2168
2174
? (
2169
-
<div class="grid grid-cols-2 sm:grid-cols-3 gap-4 my-4 flex-1">
2175
+
<div class="grid grid-cols-3 sm:grid-cols-5 gap-4 my-4 flex-1">
2170
2176
{photos.map((photo) => (
2171
2177
<PhotoSelectButton
2172
2178
key={photo.cid}
···
2288
2294
uri: photo.uri,
2289
2295
cid: photo.photo.ref.toString(),
2290
2296
thumb:
2291
-
`https://cdn.bsky.app/img/feed_thumbnail/plain/${did}/${photo.photo.ref.toString()}@webp`,
2297
+
`https://cdn.bsky.app/img/feed_thumbnail/plain/${did}/${photo.photo.ref.toString()}@jpeg`,
2292
2298
fullsize:
2293
-
`https://cdn.bsky.app/img/feed_fullsize/plain/${did}/${photo.photo.ref.toString()}@webp`,
2299
+
`https://cdn.bsky.app/img/feed_fullsize/plain/${did}/${photo.photo.ref.toString()}@jpeg`,
2294
2300
alt: photo.alt,
2295
2301
aspectRatio: photo.aspectRatio,
2296
2302
};
+13
-15
static/styles.css
+13
-15
static/styles.css
···
207
207
.inset-0 {
208
208
inset: calc(var(--spacing) * 0);
209
209
}
210
-
.top-1 {
211
-
top: calc(var(--spacing) * 1);
212
-
}
213
210
.top-2 {
214
211
top: calc(var(--spacing) * 2);
215
212
}
···
237
234
.left-0 {
238
235
left: calc(var(--spacing) * 0);
239
236
}
240
-
.left-1 {
241
-
left: calc(var(--spacing) * 1);
237
+
.left-2 {
238
+
left: calc(var(--spacing) * 2);
242
239
}
243
240
.z-10 {
244
241
z-index: 10;
···
402
399
.grid-cols-2 {
403
400
grid-template-columns: repeat(2, minmax(0, 1fr));
404
401
}
402
+
.grid-cols-3 {
403
+
grid-template-columns: repeat(3, minmax(0, 1fr));
404
+
}
405
405
.flex-col {
406
406
flex-direction: column;
407
407
}
···
495
495
}
496
496
.bg-zinc-950 {
497
497
background-color: var(--color-zinc-950);
498
+
}
499
+
.fill-zinc-950 {
500
+
fill: var(--color-zinc-950);
498
501
}
499
502
.object-contain {
500
503
object-fit: contain;
···
631
634
opacity: 50%;
632
635
}
633
636
}
634
-
.sm\:top-1 {
635
-
@media (width >= 40rem) {
636
-
top: calc(var(--spacing) * 1);
637
-
}
638
-
}
639
637
.sm\:right-1 {
640
638
@media (width >= 40rem) {
641
639
right: calc(var(--spacing) * 1);
···
644
642
.sm\:bottom-1 {
645
643
@media (width >= 40rem) {
646
644
bottom: calc(var(--spacing) * 1);
647
-
}
648
-
}
649
-
.sm\:left-1 {
650
-
@media (width >= 40rem) {
651
-
left: calc(var(--spacing) * 1);
652
645
}
653
646
}
654
647
.sm\:h-screen {
···
719
712
.dark\:bg-zinc-950 {
720
713
@media (prefers-color-scheme: dark) {
721
714
background-color: var(--color-zinc-950);
715
+
}
716
+
}
717
+
.dark\:fill-zinc-50 {
718
+
@media (prefers-color-scheme: dark) {
719
+
fill: var(--color-zinc-50);
722
720
}
723
721
}
724
722
.dark\:text-white {