alinea 1.5.0 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  {
2
- "_id": "31EeizZwUMWJXGD691jpFPBcelk",
2
+ "_id": "343CEKrqErQ4vi29XpCZFNLmjM6",
3
3
  "_type": "Page",
4
4
  "_index": "a0",
5
5
  "_seeded": "welcome.json",
package/dist/LICENSES.md CHANGED
@@ -2,11 +2,11 @@ This file contains the licenses of the bundled modules in this distribution.
2
2
 
3
3
  ===
4
4
 
5
- # react-query@3.39.3 (MIT)
5
+ # rado@1.0.15 (MIT)
6
6
 
7
7
  MIT License
8
8
 
9
- Copyright (c) 2019 Tanner Linsley
9
+ Copyright (c) 2024 Ben Merckx
10
10
 
11
11
  Permission is hereby granted, free of charge, to any person obtaining a copy
12
12
  of this software and associated documentation files (the "Software"), to deal
@@ -26,14 +26,36 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
26
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
27
  SOFTWARE.
28
28
 
29
+ ===
30
+
31
+ # htmlparser2@9.1.0 (MIT)
32
+
33
+ Copyright 2010, 2011, Chris Winberry <chris@winberry.net>. All rights reserved.
34
+ Permission is hereby granted, free of charge, to any person obtaining a copy
35
+ of this software and associated documentation files (the "Software"), to
36
+ deal in the Software without restriction, including without limitation the
37
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
38
+ sell copies of the Software, and to permit persons to whom the Software is
39
+ furnished to do so, subject to the following conditions:
40
+
41
+ The above copyright notice and this permission notice shall be included in
42
+ all copies or substantial portions of the Software.
43
+
44
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
45
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
46
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
47
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
48
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
49
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
50
+ IN THE SOFTWARE.
29
51
 
30
52
  ===
31
53
 
32
- # rado@1.0.15 (MIT)
54
+ # react-query@3.39.3 (MIT)
33
55
 
34
56
  MIT License
35
57
 
36
- Copyright (c) 2024 Ben Merckx
58
+ Copyright (c) 2019 Tanner Linsley
37
59
 
38
60
  Permission is hereby granted, free of charge, to any person obtaining a copy
39
61
  of this software and associated documentation files (the "Software"), to deal
@@ -53,13 +75,14 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
53
75
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
54
76
  SOFTWARE.
55
77
 
78
+
56
79
  ===
57
80
 
58
- # @headlessui/react@2.2.0 (MIT)
81
+ # lib0@0.2.88 (MIT)
59
82
 
60
- MIT License
83
+ The MIT License (MIT)
61
84
 
62
- Copyright (c) 2020 Tailwind Labs
85
+ Copyright (c) 2019 Kevin Jahns <kevin.jahns@protonmail.com>.
63
86
 
64
87
  Permission is hereby granted, free of charge, to any person obtaining a copy
65
88
  of this software and associated documentation files (the "Software"), to deal
@@ -79,13 +102,14 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
79
102
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
80
103
  SOFTWARE.
81
104
 
105
+
82
106
  ===
83
107
 
84
- # lib0@0.2.88 (MIT)
108
+ # @headlessui/react@2.2.0 (MIT)
85
109
 
86
- The MIT License (MIT)
110
+ MIT License
87
111
 
88
- Copyright (c) 2019 Kevin Jahns <kevin.jahns@protonmail.com>.
112
+ Copyright (c) 2020 Tailwind Labs
89
113
 
90
114
  Permission is hereby granted, free of charge, to any person obtaining a copy
91
115
  of this software and associated documentation files (the "Software"), to deal
@@ -105,29 +129,56 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
105
129
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
106
130
  SOFTWARE.
107
131
 
132
+ ===
133
+
134
+ # domutils@3.1.0 (BSD-2-Clause)
135
+
136
+ Copyright (c) Felix Böhm
137
+ All rights reserved.
138
+
139
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
140
+
141
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
142
+
143
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
144
+
145
+ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
146
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
147
+
108
148
 
109
149
  ===
110
150
 
111
- # htmlparser2@9.1.0 (MIT)
151
+ # domhandler@5.0.3 (BSD-2-Clause)
152
+
153
+ Copyright (c) Felix Böhm
154
+ All rights reserved.
155
+
156
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
157
+
158
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
159
+
160
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
161
+
162
+ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
163
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
164
+
165
+
166
+ ===
167
+
168
+ # entities@4.5.0 (BSD-2-Clause)
169
+
170
+ Copyright (c) Felix Böhm
171
+ All rights reserved.
172
+
173
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
174
+
175
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
176
+
177
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
178
+
179
+ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
180
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
112
181
 
113
- Copyright 2010, 2011, Chris Winberry <chris@winberry.net>. All rights reserved.
114
- Permission is hereby granted, free of charge, to any person obtaining a copy
115
- of this software and associated documentation files (the "Software"), to
116
- deal in the Software without restriction, including without limitation the
117
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
118
- sell copies of the Software, and to permit persons to whom the Software is
119
- furnished to do so, subject to the following conditions:
120
-
121
- The above copyright notice and this permission notice shall be included in
122
- all copies or substantial portions of the Software.
123
-
124
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
125
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
126
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
127
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
128
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
129
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
130
- IN THE SOFTWARE.
131
182
 
132
183
  ===
133
184
 
@@ -184,53 +235,46 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
184
235
 
185
236
  ===
186
237
 
187
- # domutils@3.1.0 (BSD-2-Clause)
188
-
189
- Copyright (c) Felix Böhm
190
- All rights reserved.
191
-
192
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
193
-
194
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
195
-
196
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
197
-
198
- THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
199
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
200
-
201
-
202
- ===
238
+ # dom-serializer@2.0.0 (MIT)
203
239
 
204
- # domhandler@5.0.3 (BSD-2-Clause)
240
+ License
205
241
 
206
- Copyright (c) Felix Böhm
207
- All rights reserved.
242
+ (The MIT License)
208
243
 
209
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
244
+ Copyright (c) 2014 The cheeriojs contributors
210
245
 
211
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
246
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
212
247
 
213
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
248
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
214
249
 
215
- THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
216
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
250
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
217
251
 
218
252
 
219
253
  ===
220
254
 
221
- # entities@4.5.0 (BSD-2-Clause)
255
+ # prop-types@15.8.1 (MIT)
222
256
 
223
- Copyright (c) Felix Böhm
224
- All rights reserved.
257
+ MIT License
225
258
 
226
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
259
+ Copyright (c) 2013-present, Facebook, Inc.
227
260
 
228
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
261
+ Permission is hereby granted, free of charge, to any person obtaining a copy
262
+ of this software and associated documentation files (the "Software"), to deal
263
+ in the Software without restriction, including without limitation the rights
264
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
265
+ copies of the Software, and to permit persons to whom the Software is
266
+ furnished to do so, subject to the following conditions:
229
267
 
230
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
268
+ The above copyright notice and this permission notice shall be included in all
269
+ copies or substantial portions of the Software.
231
270
 
232
- THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
233
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
271
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
272
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
273
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
274
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
275
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
276
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
277
+ SOFTWARE.
234
278
 
235
279
 
236
280
  ===
@@ -440,33 +484,6 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
440
484
  limitations under the License.
441
485
 
442
486
 
443
- ===
444
-
445
- # prop-types@15.8.1 (MIT)
446
-
447
- MIT License
448
-
449
- Copyright (c) 2013-present, Facebook, Inc.
450
-
451
- Permission is hereby granted, free of charge, to any person obtaining a copy
452
- of this software and associated documentation files (the "Software"), to deal
453
- in the Software without restriction, including without limitation the rights
454
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
455
- copies of the Software, and to permit persons to whom the Software is
456
- furnished to do so, subject to the following conditions:
457
-
458
- The above copyright notice and this permission notice shall be included in all
459
- copies or substantial portions of the Software.
460
-
461
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
462
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
463
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
464
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
465
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
466
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
467
- SOFTWARE.
468
-
469
-
470
487
  ===
471
488
 
472
489
  # react-is@16.13.1 (MIT)
@@ -494,23 +511,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
494
511
  SOFTWARE.
495
512
 
496
513
 
497
- ===
498
-
499
- # dom-serializer@2.0.0 (MIT)
500
-
501
- License
502
-
503
- (The MIT License)
504
-
505
- Copyright (c) 2014 The cheeriojs contributors
506
-
507
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
508
-
509
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
510
-
511
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
512
-
513
-
514
514
  ===
515
515
 
516
516
  # @headless-tree/core@0.0.15 (MIT)
@@ -1612,33 +1612,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1612
1612
  See the License for the specific language governing permissions and
1613
1613
  limitations under the License.
1614
1614
 
1615
- ===
1616
-
1617
- # @tanstack/virtual-core@3.10.6 (MIT)
1618
-
1619
- MIT License
1620
-
1621
- Copyright (c) 2021-present Tanner Linsley
1622
-
1623
- Permission is hereby granted, free of charge, to any person obtaining a copy
1624
- of this software and associated documentation files (the "Software"), to deal
1625
- in the Software without restriction, including without limitation the rights
1626
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1627
- copies of the Software, and to permit persons to whom the Software is
1628
- furnished to do so, subject to the following conditions:
1629
-
1630
- The above copyright notice and this permission notice shall be included in all
1631
- copies or substantial portions of the Software.
1632
-
1633
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1634
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1635
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1636
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1637
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1638
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1639
- SOFTWARE.
1640
-
1641
-
1642
1615
  ===
1643
1616
 
1644
1617
  # @react-stately/utils@3.10.5 (Apache-2.0)
@@ -1844,3 +1817,30 @@ SOFTWARE.
1844
1817
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1845
1818
  See the License for the specific language governing permissions and
1846
1819
  limitations under the License.
1820
+
1821
+
1822
+ ===
1823
+
1824
+ # @tanstack/virtual-core@3.10.6 (MIT)
1825
+
1826
+ MIT License
1827
+
1828
+ Copyright (c) 2021-present Tanner Linsley
1829
+
1830
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1831
+ of this software and associated documentation files (the "Software"), to deal
1832
+ in the Software without restriction, including without limitation the rights
1833
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1834
+ copies of the Software, and to permit persons to whom the Software is
1835
+ furnished to do so, subject to the following conditions:
1836
+
1837
+ The above copyright notice and this permission notice shall be included in all
1838
+ copies or substantial portions of the Software.
1839
+
1840
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1841
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1842
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1843
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1844
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1845
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1846
+ SOFTWARE.
@@ -69,6 +69,11 @@ function createHandler({
69
69
  const acceptsJson = request.headers.get("accept")?.includes("application/json");
70
70
  if (!acceptsJson) throw new Response("Expected JSON", { status: 400 });
71
71
  };
72
+ if (action === HandleAction.Upload && request.method === "GET") {
73
+ const entryId = url.searchParams.get("entryId");
74
+ if (entryId && cnx.previewUpload)
75
+ return await cnx.previewUpload(entryId);
76
+ }
72
77
  try {
73
78
  userCtx = await cnx.verify(request);
74
79
  cnx = remote(userCtx);
@@ -184,24 +189,19 @@ function createHandler({
184
189
  return new Response(formData);
185
190
  }
186
191
  if (action === HandleAction.Upload) {
192
+ expectUser();
187
193
  const entryId = url.searchParams.get("entryId");
188
194
  if (!entryId) {
189
- expectUser();
190
195
  expectJson();
191
196
  return Response.json(
192
197
  await cnx.prepareUpload(PrepareBody(await body).filename)
193
198
  );
194
199
  }
195
200
  const isPost = request.method === "POST";
196
- if (isPost) {
197
- expectUser();
198
- if (!cnx.handleUpload)
199
- throw new Response("Bad Request", { status: 400 });
201
+ if (isPost && cnx.handleUpload) {
200
202
  await cnx.handleUpload(entryId, await request.blob());
201
203
  return new Response("OK", { status: 200 });
202
204
  }
203
- if (!cnx.previewUpload) throw new Response("Bad Request", { status: 400 });
204
- return await cnx.previewUpload(entryId);
205
205
  }
206
206
  if (action === HandleAction.Draft && request.method === "GET") {
207
207
  expectJson();
@@ -525,8 +525,7 @@ var OAuth2 = class {
525
525
  value: codeVerifier,
526
526
  path: redirectUri.pathname,
527
527
  secure: redirectUri.protocol === "https:",
528
- httpOnly: true,
529
- sameSite: "strict"
528
+ httpOnly: true
530
529
  })
531
530
  }
532
531
  }
@@ -559,6 +558,22 @@ var OAuth2 = class {
559
558
  }
560
559
  });
561
560
  }
561
+ case AuthAction.Logout: {
562
+ const cookieHeader = request.headers.get("cookie");
563
+ if (!cookieHeader) throw new HttpError(400, "Missing cookies");
564
+ const cookies = parse(cookieHeader);
565
+ const accessToken = cookies[COOKIE_ACCESS_TOKEN];
566
+ const refreshToken = cookies[COOKIE_REFRESH_TOKEN];
567
+ const token = { accessToken, refreshToken, expiresAt: null };
568
+ await this.#client.revoke(token).catch(() => {
569
+ });
570
+ return new Response(void 0, {
571
+ status: 204,
572
+ headers: {
573
+ "set-cookie": clearCookies(redirectUri)
574
+ }
575
+ });
576
+ }
562
577
  default:
563
578
  return new Response("Bad request", { status: 400 });
564
579
  }
@@ -629,6 +644,28 @@ function selectKey(jwks, token) {
629
644
  if (!key) throw new Error(`No key found for kid: ${kid}`);
630
645
  return key;
631
646
  }
647
+ function clearCookies(redirectUri) {
648
+ return router.cookie(
649
+ {
650
+ name: COOKIE_ACCESS_TOKEN,
651
+ value: "",
652
+ expires: /* @__PURE__ */ new Date(0),
653
+ path: "/",
654
+ secure: redirectUri.protocol === "https:",
655
+ httpOnly: true,
656
+ sameSite: "strict"
657
+ },
658
+ {
659
+ name: COOKIE_REFRESH_TOKEN,
660
+ value: "",
661
+ expires: /* @__PURE__ */ new Date(0),
662
+ path: redirectUri.pathname,
663
+ secure: redirectUri.protocol === "https:",
664
+ httpOnly: true,
665
+ sameSite: "strict"
666
+ }
667
+ );
668
+ }
632
669
  function tokenToCookie(token, redirectUri) {
633
670
  assert(token.refreshToken, "Missing refresh token in response");
634
671
  return router.cookie(
@@ -636,7 +673,7 @@ function tokenToCookie(token, redirectUri) {
636
673
  name: COOKIE_ACCESS_TOKEN,
637
674
  value: token.accessToken,
638
675
  expires: token.expiresAt ? new Date(token.expiresAt) : void 0,
639
- path: redirectUri.pathname,
676
+ path: "/",
640
677
  secure: redirectUri.protocol === "https:",
641
678
  httpOnly: true,
642
679
  sameSite: "strict"
package/dist/bundled.d.ts CHANGED
@@ -1172,6 +1172,7 @@ declare module 'alinea/core/Client' {
1172
1172
  constructor(options: ClientOptions);
1173
1173
  get url(): string;
1174
1174
  authStatus(): Promise<AuthResult>;
1175
+ logout: () => Promise<void>;
1175
1176
  previewToken(request: PreviewInfo): Promise<string>;
1176
1177
  prepareUpload(file: string): Promise<UploadResponse>;
1177
1178
  user(): Promise<User | undefined>;
@@ -1286,6 +1287,9 @@ declare module 'alinea/core/Connection' {
1286
1287
  }
1287
1288
  export interface RemoteConnection extends Connection, AuthApi {
1288
1289
  }
1290
+ export interface BrowserConnection extends Connection {
1291
+ logout?(): Promise<void>;
1292
+ }
1289
1293
  export interface LocalConnection extends Connection {
1290
1294
  mutate(mutations: Array<Mutation>): Promise<{
1291
1295
  sha: string;
@@ -3132,12 +3136,11 @@ declare module 'alinea/core/Section' {
3132
3136
 
3133
3137
  declare module 'alinea/core/Session' {
3134
3138
 
3135
- import type { Connection } from 'alinea/core/Connection';
3139
+ import type { BrowserConnection } from 'alinea/core/Connection';
3136
3140
  import type { User } from 'alinea/core/User';
3137
3141
  export interface Session {
3138
- cnx: Connection;
3142
+ cnx: BrowserConnection;
3139
3143
  user: User;
3140
- end?: () => Promise<void>;
3141
3144
  }
3142
3145
 
3143
3146
  }
@@ -57,7 +57,7 @@ var package_default = {
57
57
  },
58
58
  devDependencies: {
59
59
  "@alinea/styler": "^1.0.3",
60
- "@alinea/suite": "^0.6.2",
60
+ "@alinea/suite": "^0.6.3",
61
61
  "@biomejs/biome": "^2.1.2",
62
62
  "@esbx/reporter": "^0.0.20",
63
63
  "@esbx/workspaces": "^0.0.20",
@@ -2,7 +2,7 @@
2
2
  var package_default = {
3
3
  bin: "./dist/cli.js",
4
4
  name: "alinea",
5
- version: "1.5.0",
5
+ version: "1.5.3",
6
6
  description: "Headless git-based CMS",
7
7
  repository: {
8
8
  type: "git",
package/dist/cli/Serve.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-ABIK64FW.js";
3
+ } from "../chunks/chunk-MJSO2MPH.js";
4
4
  import "../chunks/chunk-NZLE2WMY.js";
5
5
 
6
6
  // src/cli/Serve.ts
package/dist/cli/bin.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-ABIK64FW.js";
3
+ } from "../chunks/chunk-MJSO2MPH.js";
4
4
  import "../chunks/chunk-NZLE2WMY.js";
5
5
 
6
6
  // node_modules/mri/lib/index.mjs
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-ABIK64FW.js";
3
+ } from "../chunks/chunk-MJSO2MPH.js";
4
4
  import "../chunks/chunk-NZLE2WMY.js";
5
5
 
6
6
  // src/cloud/CloudRemote.ts
@@ -20,7 +20,8 @@ function CloudAuthView({ setSession }) {
20
20
  throw new Error("Cannot authenticate with non http client");
21
21
  const clientUrl = new URL(client.url, window.location.href);
22
22
  const { data, isError } = useQuery(["auth.status"], () => client.authStatus(), {
23
- keepPreviousData: true
23
+ cacheTime: 0,
24
+ keepPreviousData: false
24
25
  });
25
26
  if (isError)
26
27
  return /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -57,10 +58,7 @@ function CloudAuthView({ setSession }) {
57
58
  cnx: client.authenticate(
58
59
  (options) => options,
59
60
  () => setSession(void 0)
60
- ),
61
- async end() {
62
- location.href = new URL("?auth=logout", clientUrl).href;
63
- }
61
+ )
64
62
  });
65
63
  return null;
66
64
  case AuthResultType.UnAuthenticated:
@@ -21,6 +21,7 @@ export declare class Client implements LocalConnection {
21
21
  constructor(options: ClientOptions);
22
22
  get url(): string;
23
23
  authStatus(): Promise<AuthResult>;
24
+ logout: () => Promise<void>;
24
25
  previewToken(request: PreviewInfo): Promise<string>;
25
26
  prepareUpload(file: string): Promise<UploadResponse>;
26
27
  user(): Promise<User | undefined>;
@@ -22,6 +22,13 @@ var Client = class _Client {
22
22
  auth: "status"
23
23
  }).then(this.#failOnHttpError);
24
24
  }
25
+ logout = async () => {
26
+ const endSession = this.#options.unauthorized;
27
+ await this.#request({
28
+ action: HandleAction.Auth,
29
+ auth: "logout"
30
+ }).then((res) => this.#failOnHttpError(res, false)).then(endSession);
31
+ };
25
32
  previewToken(request) {
26
33
  return this.#requestJson(
27
34
  { action: HandleAction.PreviewToken },
@@ -13,6 +13,9 @@ export interface AuthApi {
13
13
  }
14
14
  export interface RemoteConnection extends Connection, AuthApi {
15
15
  }
16
+ export interface BrowserConnection extends Connection {
17
+ logout?(): Promise<void>;
18
+ }
16
19
  export interface LocalConnection extends Connection {
17
20
  mutate(mutations: Array<Mutation>): Promise<{
18
21
  sha: string;
@@ -9,9 +9,8 @@ var Graph = class {
9
9
  return this.resolve({ ...query, first: true });
10
10
  }
11
11
  async get(query) {
12
- const error = globalThis.Bun ? new Error("Entry not found") : void 0;
13
12
  const result = await this.resolve({ ...query, get: true });
14
- if (!result) throw error ?? new Error("Entry not found");
13
+ if (!result) throw new Error("Entry not found");
15
14
  return result;
16
15
  }
17
16
  count(query) {
@@ -1,7 +1,6 @@
1
- import type { Connection } from './Connection.js';
1
+ import type { BrowserConnection } from './Connection.js';
2
2
  import type { User } from './User.js';
3
3
  export interface Session {
4
- cnx: Connection;
4
+ cnx: BrowserConnection;
5
5
  user: User;
6
- end?: () => Promise<void>;
7
6
  }
@@ -104,7 +104,7 @@ var EntryResolver = class {
104
104
  case "next": {
105
105
  const [next] = this.index.filter({
106
106
  condition({ workspace, root, parentId, index, locale }) {
107
- return workspace === entry.workspace && root === entry.root && parentId === entry.parentId && index < entry.index && locale === entry.locale;
107
+ return workspace === entry.workspace && root === entry.root && parentId === entry.parentId && index > entry.index && locale === entry.locale;
108
108
  }
109
109
  }).sort((a, b) => compareStrings(a.index, b.index));
110
110
  return { ids: next ? [next.id] : [] };
@@ -112,7 +112,7 @@ var EntryResolver = class {
112
112
  case "previous": {
113
113
  const [previous] = this.index.filter({
114
114
  condition({ workspace, root, parentId, index, locale }) {
115
- return workspace === entry.workspace && root === entry.root && parentId === entry.parentId && index > entry.index && locale === entry.locale;
115
+ return workspace === entry.workspace && root === entry.root && parentId === entry.parentId && index < entry.index && locale === entry.locale;
116
116
  }
117
117
  }).sort((a, b) => compareStrings(b.index, a.index));
118
118
  return { ids: previous ? [previous.id] : [] };
@@ -153,7 +153,7 @@ var UploadOperation = class extends Operation {
153
153
  const uploadFile = {
154
154
  op: "uploadFile",
155
155
  url: info.previewUrl,
156
- location: info.location
156
+ location: join(prefix, fileLocation)
157
157
  };
158
158
  const createEntry = {
159
159
  op: "create",
@@ -11,36 +11,36 @@ import "../chunks/chunk-NZLE2WMY.js";
11
11
  import { Config } from "alinea/core/Config";
12
12
  import { Root } from "alinea/core/Root";
13
13
  import { Icon, Loader, px } from "alinea/ui";
14
- import { Statusbar } from "alinea/ui/Statusbar";
15
14
  import { FavIcon } from "alinea/ui/branding/FavIcon";
16
15
  import { IcRoundCheck } from "alinea/ui/icons/IcRoundCheck";
17
16
  import { IcRoundDescription } from "alinea/ui/icons/IcRoundDescription";
18
17
  import { IcRoundSync } from "alinea/ui/icons/IcRoundSync";
19
18
  import { MaterialSymbolsDatabase } from "alinea/ui/icons/MaterialSymbolsDatabase";
19
+ import { Statusbar } from "alinea/ui/Statusbar";
20
20
  import { useEffect } from "react";
21
- import { navMatchers } from "./DashboardNav.js";
22
- import { DashboardProvider } from "./DashboardProvider.js";
23
- import { router } from "./Routes.js";
24
21
  import { sessionAtom } from "./atoms/DashboardAtoms.js";
25
22
  import { dbMetaAtom, pendingAtom, useDbUpdater } from "./atoms/DbAtoms.js";
26
23
  import { errorAtom } from "./atoms/ErrorAtoms.js";
27
24
  import { locationAtom, matchAtoms } from "./atoms/LocationAtoms.js";
28
25
  import { usePreferredLanguage } from "./atoms/NavigationAtoms.js";
29
- import { RouteView, RouterProvider } from "./atoms/RouterAtoms.js";
26
+ import { RouterProvider, RouteView } from "./atoms/RouterAtoms.js";
27
+ import { navMatchers } from "./DashboardNav.js";
28
+ import { DashboardProvider } from "./DashboardProvider.js";
30
29
  import { useDashboard } from "./hook/UseDashboard.js";
31
30
  import { useEntryLocation } from "./hook/UseEntryLocation.js";
32
31
  import { useLocale } from "./hook/UseLocale.js";
33
32
  import { useNav } from "./hook/UseNav.js";
34
33
  import { useRoot } from "./hook/UseRoot.js";
35
34
  import { useWorkspace } from "./hook/UseWorkspace.js";
35
+ import { router } from "./Routes.js";
36
36
  import { Head } from "./util/Head.js";
37
37
  import { SuspenseBoundary } from "./util/SuspenseBoundary.js";
38
38
  import { ErrorBoundary } from "./view/ErrorBoundary.js";
39
39
  import { Modal } from "./view/Modal.js";
40
40
  import { Sidebar } from "./view/Sidebar.js";
41
+ import { SidebarSettings } from "./view/sidebar/SidebarSettings.js";
41
42
  import { Toolbar } from "./view/Toolbar.js";
42
43
  import { Viewport } from "./view/Viewport.js";
43
- import { SidebarSettings } from "./view/sidebar/SidebarSettings.js";
44
44
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
45
45
  var isEntryAtom = atom((get) => {
46
46
  const location = get(locationAtom);
@@ -127,7 +127,7 @@ function AppRoot() {
127
127
  /* @__PURE__ */ jsx(Head, { children: /* @__PURE__ */ jsx(FavIcon, { color }) }),
128
128
  Auth && /* @__PURE__ */ jsx(SuspenseBoundary, { name: "auth", fallback: /* @__PURE__ */ jsx(Loader, { absolute: true }), children: /* @__PURE__ */ jsx(Auth, { setSession }) })
129
129
  ] });
130
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(SuspenseBoundary, { name: "router", fallback: /* @__PURE__ */ jsx(Loader, { absolute: true }), children: /* @__PURE__ */ jsx(RouterProvider, { router, children: /* @__PURE__ */ jsx(AppAuthenticated, {}) }) }) });
130
+ return /* @__PURE__ */ jsx(SuspenseBoundary, { name: "router", fallback: /* @__PURE__ */ jsx(Loader, { absolute: true }), children: /* @__PURE__ */ jsx(RouterProvider, { router, children: /* @__PURE__ */ jsx(AppAuthenticated, {}) }) });
131
131
  }
132
132
  function App(props) {
133
133
  const fullPage = props.fullPage !== false;
@@ -22,16 +22,14 @@ import "../../chunks/chunk-NZLE2WMY.js";
22
22
  // src/dashboard/view/Toolbar.tsx
23
23
  import { Config } from "alinea/core/Config";
24
24
  import { Root as AlineaRoot } from "alinea/core/Root";
25
- import { Workspace } from "alinea/core/Workspace";
26
25
  import { entries, fromEntries } from "alinea/core/util/Objects";
26
+ import { Workspace } from "alinea/core/Workspace";
27
27
  import { link, useNavigate } from "alinea/dashboard/util/HashRouter";
28
28
  import { select } from "alinea/field/select";
29
- import { Icon, TextLabel, VStack, px } from "alinea/ui";
29
+ import { Icon, px, TextLabel, VStack } from "alinea/ui";
30
30
  import { Avatar } from "alinea/ui/Avatar";
31
- import { DropdownMenu } from "alinea/ui/DropdownMenu";
32
- import { PopoverMenu } from "alinea/ui/PopoverMenu";
33
- import { HStack } from "alinea/ui/Stack";
34
31
  import { LogoShape } from "alinea/ui/branding/LogoShape";
32
+ import { DropdownMenu } from "alinea/ui/DropdownMenu";
35
33
  import { IcOutlineScreenshot } from "alinea/ui/icons/IcOutlineScreenshot";
36
34
  import { IcRoundKeyboardArrowDown } from "alinea/ui/icons/IcRoundKeyboardArrowDown";
37
35
  import { IcRoundKeyboardArrowUp } from "alinea/ui/icons/IcRoundKeyboardArrowUp";
@@ -40,6 +38,8 @@ import { IcRoundTextFields } from "alinea/ui/icons/IcRoundTextFields";
40
38
  import { IcRoundUnfoldMore } from "alinea/ui/icons/IcRoundUnfoldMore";
41
39
  import { IcSharpBrightnessMedium } from "alinea/ui/icons/IcSharpBrightnessMedium";
42
40
  import { RiFlashlightFill } from "alinea/ui/icons/RiFlashlightFill";
41
+ import { PopoverMenu } from "alinea/ui/PopoverMenu";
42
+ import { HStack } from "alinea/ui/Stack";
43
43
  import { contrastColor } from "alinea/ui/util/ContrastColor";
44
44
  import { createSlots } from "alinea/ui/util/Slots";
45
45
  import { dashboardOptionsAtom } from "../atoms/DashboardAtoms.js";
@@ -219,7 +219,7 @@ var Toolbar;
219
219
  )
220
220
  ] })
221
221
  ] }) }),
222
- Config.hasAuth(config) && /* @__PURE__ */ jsx(PopoverMenu.Footer, { children: /* @__PURE__ */ jsx(DropdownMenu.Root, { children: /* @__PURE__ */ jsx(DropdownMenu.Item, { onClick: session.end, children: "Logout" }) }) })
222
+ Config.hasAuth(config) && session.cnx.logout && /* @__PURE__ */ jsx(PopoverMenu.Footer, { children: /* @__PURE__ */ jsx(DropdownMenu.Root, { children: /* @__PURE__ */ jsx(DropdownMenu.Item, { onClick: session.cnx.logout, children: "Logout" }) }) })
223
223
  ] }) })
224
224
  ] }),
225
225
  /* @__PURE__ */ jsx(
@@ -389,7 +389,7 @@ function EntryHeader({ editor, editable = true }) {
389
389
  {
390
390
  icon: IcRoundLastPage,
391
391
  style: {
392
- transform: `rotate(${isPreviewOpen ? 180 : 0}deg)`
392
+ transform: `scaleX(${isPreviewOpen ? 1 : -1})`
393
393
  }
394
394
  }
395
395
  )
@@ -17,18 +17,18 @@ import "../../../chunks/chunk-WJ67RR7S.js";
17
17
  import "../../../chunks/chunk-NZLE2WMY.js";
18
18
 
19
19
  // src/dashboard/view/sidebar/SidebarSettings.tsx
20
- import { Workspace } from "alinea/core/Workspace";
21
20
  import { entries, fromEntries } from "alinea/core/util/Objects";
21
+ import { Workspace } from "alinea/core/Workspace";
22
22
  import { select } from "alinea/field";
23
23
  import { HStack, Icon, VStack, px } from "alinea/ui";
24
24
  import { DropdownMenu } from "alinea/ui/DropdownMenu";
25
25
  import { Ellipsis } from "alinea/ui/Ellipsis";
26
- import { PopoverMenu } from "alinea/ui/PopoverMenu";
27
26
  import { IcBaselineAccountCircle } from "alinea/ui/icons/IcBaselineAccountCircle";
28
27
  import { IcRoundKeyboardArrowDown } from "alinea/ui/icons/IcRoundKeyboardArrowDown";
29
28
  import { IcRoundKeyboardArrowUp } from "alinea/ui/icons/IcRoundKeyboardArrowUp";
30
29
  import { IcRoundTextFields } from "alinea/ui/icons/IcRoundTextFields";
31
30
  import { IcSharpBrightnessMedium } from "alinea/ui/icons/IcSharpBrightnessMedium";
31
+ import { PopoverMenu } from "alinea/ui/PopoverMenu";
32
32
  import { useMemo } from "react";
33
33
  import { dashboardOptionsAtom } from "../../atoms/DashboardAtoms.js";
34
34
  import {
@@ -147,7 +147,7 @@ function SidebarSettings() {
147
147
  )
148
148
  ] })
149
149
  ] }) }),
150
- session.end && /* @__PURE__ */ jsx(PopoverMenu.Footer, { children: /* @__PURE__ */ jsx(DropdownMenu.Root, { children: /* @__PURE__ */ jsx(DropdownMenu.Item, { onClick: session.end, children: "Logout" }) }) })
150
+ session.cnx.logout && /* @__PURE__ */ jsx(PopoverMenu.Footer, { children: /* @__PURE__ */ jsx(DropdownMenu.Root, { children: /* @__PURE__ */ jsx(DropdownMenu.Item, { onClick: session.cnx.logout, children: "Logout" }) }) })
151
151
  ] }) })
152
152
  ] });
153
153
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "bin": "./dist/cli.js",
3
3
  "name": "alinea",
4
- "version": "1.5.0",
4
+ "version": "1.5.3",
5
5
  "description": "Headless git-based CMS",
6
6
  "repository": {
7
7
  "type": "git",