alinea 1.5.0 → 1.5.1
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.
- package/dist/.init/content/pages/welcome.json +1 -1
- package/dist/LICENSES.md +135 -135
- package/dist/backend/Handler.js +7 -7
- package/dist/backend/api/OAuth2.js +38 -0
- package/dist/bundled.d.ts +6 -3
- package/dist/chunks/{chunk-ABIK64FW.js → chunk-Z3QMPIDC.js} +1 -1
- package/dist/cli/Serve.js +1 -1
- package/dist/cli/bin.js +1 -1
- package/dist/cloud/CloudRemote.js +1 -1
- package/dist/cloud/view/CloudAuth.browser.js +3 -5
- package/dist/core/Client.d.ts +1 -0
- package/dist/core/Client.js +7 -0
- package/dist/core/Connection.d.ts +3 -0
- package/dist/core/Graph.js +1 -2
- package/dist/core/Session.d.ts +2 -3
- package/dist/core/db/Operation.js +1 -1
- package/dist/dashboard/App.js +7 -7
- package/dist/dashboard/view/Toolbar.js +6 -6
- package/dist/dashboard/view/entry/EntryHeader.js +1 -1
- package/dist/dashboard/view/sidebar/SidebarSettings.js +3 -3
- package/package.json +1 -1
package/dist/LICENSES.md
CHANGED
|
@@ -1,32 +1,5 @@
|
|
|
1
1
|
This file contains the licenses of the bundled modules in this distribution.
|
|
2
2
|
|
|
3
|
-
===
|
|
4
|
-
|
|
5
|
-
# react-query@3.39.3 (MIT)
|
|
6
|
-
|
|
7
|
-
MIT License
|
|
8
|
-
|
|
9
|
-
Copyright (c) 2019 Tanner Linsley
|
|
10
|
-
|
|
11
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
-
in the Software without restriction, including without limitation the rights
|
|
14
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
-
furnished to do so, subject to the following conditions:
|
|
17
|
-
|
|
18
|
-
The above copyright notice and this permission notice shall be included in all
|
|
19
|
-
copies or substantial portions of the Software.
|
|
20
|
-
|
|
21
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
-
SOFTWARE.
|
|
28
|
-
|
|
29
|
-
|
|
30
3
|
===
|
|
31
4
|
|
|
32
5
|
# rado@1.0.15 (MIT)
|
|
@@ -55,11 +28,11 @@ SOFTWARE.
|
|
|
55
28
|
|
|
56
29
|
===
|
|
57
30
|
|
|
58
|
-
#
|
|
31
|
+
# react-query@3.39.3 (MIT)
|
|
59
32
|
|
|
60
33
|
MIT License
|
|
61
34
|
|
|
62
|
-
Copyright (c)
|
|
35
|
+
Copyright (c) 2019 Tanner Linsley
|
|
63
36
|
|
|
64
37
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
65
38
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -79,6 +52,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
79
52
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
80
53
|
SOFTWARE.
|
|
81
54
|
|
|
55
|
+
|
|
82
56
|
===
|
|
83
57
|
|
|
84
58
|
# lib0@0.2.88 (MIT)
|
|
@@ -131,11 +105,28 @@ IN THE SOFTWARE.
|
|
|
131
105
|
|
|
132
106
|
===
|
|
133
107
|
|
|
134
|
-
# @
|
|
108
|
+
# domutils@3.1.0 (BSD-2-Clause)
|
|
109
|
+
|
|
110
|
+
Copyright (c) Felix Böhm
|
|
111
|
+
All rights reserved.
|
|
112
|
+
|
|
113
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
114
|
+
|
|
115
|
+
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
116
|
+
|
|
117
|
+
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.
|
|
118
|
+
|
|
119
|
+
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,
|
|
120
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
===
|
|
124
|
+
|
|
125
|
+
# @headlessui/react@2.2.0 (MIT)
|
|
135
126
|
|
|
136
127
|
MIT License
|
|
137
128
|
|
|
138
|
-
Copyright (c)
|
|
129
|
+
Copyright (c) 2020 Tailwind Labs
|
|
139
130
|
|
|
140
131
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
141
132
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -155,36 +146,26 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
155
146
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
156
147
|
SOFTWARE.
|
|
157
148
|
|
|
158
|
-
|
|
159
149
|
===
|
|
160
150
|
|
|
161
|
-
# @
|
|
151
|
+
# domhandler@5.0.3 (BSD-2-Clause)
|
|
162
152
|
|
|
163
|
-
|
|
153
|
+
Copyright (c) Felix Böhm
|
|
154
|
+
All rights reserved.
|
|
164
155
|
|
|
165
|
-
|
|
156
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
166
157
|
|
|
167
|
-
|
|
168
|
-
this software and associated documentation files (the "Software"), to deal in
|
|
169
|
-
the Software without restriction, including without limitation the rights to
|
|
170
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
171
|
-
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
172
|
-
subject to the following conditions:
|
|
158
|
+
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
173
159
|
|
|
174
|
-
|
|
175
|
-
copies or substantial portions of the Software.
|
|
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.
|
|
176
161
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
180
|
-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
181
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
182
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
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.
|
|
183
164
|
|
|
184
165
|
|
|
185
166
|
===
|
|
186
167
|
|
|
187
|
-
#
|
|
168
|
+
# entities@4.5.0 (BSD-2-Clause)
|
|
188
169
|
|
|
189
170
|
Copyright (c) Felix Böhm
|
|
190
171
|
All rights reserved.
|
|
@@ -201,36 +182,56 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
201
182
|
|
|
202
183
|
===
|
|
203
184
|
|
|
204
|
-
#
|
|
185
|
+
# @badgateway/oauth2-client@3.2.0 (MIT)
|
|
205
186
|
|
|
206
|
-
|
|
207
|
-
All rights reserved.
|
|
187
|
+
MIT License
|
|
208
188
|
|
|
209
|
-
|
|
189
|
+
Copyright (c) 2019-2023 Evert Pot
|
|
210
190
|
|
|
211
|
-
|
|
191
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
192
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
193
|
+
in the Software without restriction, including without limitation the rights
|
|
194
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
195
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
196
|
+
furnished to do so, subject to the following conditions:
|
|
212
197
|
|
|
213
|
-
|
|
198
|
+
The above copyright notice and this permission notice shall be included in all
|
|
199
|
+
copies or substantial portions of the Software.
|
|
214
200
|
|
|
215
|
-
|
|
216
|
-
|
|
201
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
202
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
203
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
204
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
205
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
206
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
207
|
+
SOFTWARE.
|
|
217
208
|
|
|
218
209
|
|
|
219
210
|
===
|
|
220
211
|
|
|
221
|
-
#
|
|
212
|
+
# prop-types@15.8.1 (MIT)
|
|
222
213
|
|
|
223
|
-
|
|
224
|
-
All rights reserved.
|
|
214
|
+
MIT License
|
|
225
215
|
|
|
226
|
-
|
|
216
|
+
Copyright (c) 2013-present, Facebook, Inc.
|
|
227
217
|
|
|
228
|
-
|
|
218
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
219
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
220
|
+
in the Software without restriction, including without limitation the rights
|
|
221
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
222
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
223
|
+
furnished to do so, subject to the following conditions:
|
|
229
224
|
|
|
230
|
-
|
|
225
|
+
The above copyright notice and this permission notice shall be included in all
|
|
226
|
+
copies or substantial portions of the Software.
|
|
231
227
|
|
|
232
|
-
|
|
233
|
-
|
|
228
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
229
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
230
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
231
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
232
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
233
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
234
|
+
SOFTWARE.
|
|
234
235
|
|
|
235
236
|
|
|
236
237
|
===
|
|
@@ -442,29 +443,28 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
442
443
|
|
|
443
444
|
===
|
|
444
445
|
|
|
445
|
-
#
|
|
446
|
+
# @popperjs/core@2.11.8 (MIT)
|
|
446
447
|
|
|
447
|
-
MIT License
|
|
448
|
+
The MIT License (MIT)
|
|
448
449
|
|
|
449
|
-
Copyright (c)
|
|
450
|
+
Copyright (c) 2019 Federico Zivolo
|
|
450
451
|
|
|
451
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
452
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
453
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
454
|
+
the Software without restriction, including without limitation the rights to
|
|
455
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
456
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
457
|
+
subject to the following conditions:
|
|
457
458
|
|
|
458
459
|
The above copyright notice and this permission notice shall be included in all
|
|
459
460
|
copies or substantial portions of the Software.
|
|
460
461
|
|
|
461
462
|
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
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
SOFTWARE.
|
|
463
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
464
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
465
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
466
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
467
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
468
468
|
|
|
469
469
|
|
|
470
470
|
===
|
|
@@ -523,33 +523,6 @@ MIT
|
|
|
523
523
|
|
|
524
524
|
MIT
|
|
525
525
|
|
|
526
|
-
===
|
|
527
|
-
|
|
528
|
-
# y-prosemirror@1.2.15 (MIT)
|
|
529
|
-
|
|
530
|
-
The MIT License (MIT)
|
|
531
|
-
|
|
532
|
-
Copyright (c) 2019 Kevin Jahns <kevin.jahns@protonmail.com>.
|
|
533
|
-
|
|
534
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
535
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
536
|
-
in the Software without restriction, including without limitation the rights
|
|
537
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
538
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
539
|
-
furnished to do so, subject to the following conditions:
|
|
540
|
-
|
|
541
|
-
The above copyright notice and this permission notice shall be included in all
|
|
542
|
-
copies or substantial portions of the Software.
|
|
543
|
-
|
|
544
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
545
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
546
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
547
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
548
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
549
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
550
|
-
SOFTWARE.
|
|
551
|
-
|
|
552
|
-
|
|
553
526
|
===
|
|
554
527
|
|
|
555
528
|
# @babel/runtime@7.25.4 (MIT)
|
|
@@ -578,6 +551,33 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
|
578
551
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
579
552
|
|
|
580
553
|
|
|
554
|
+
===
|
|
555
|
+
|
|
556
|
+
# y-prosemirror@1.2.15 (MIT)
|
|
557
|
+
|
|
558
|
+
The MIT License (MIT)
|
|
559
|
+
|
|
560
|
+
Copyright (c) 2019 Kevin Jahns <kevin.jahns@protonmail.com>.
|
|
561
|
+
|
|
562
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
563
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
564
|
+
in the Software without restriction, including without limitation the rights
|
|
565
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
566
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
567
|
+
furnished to do so, subject to the following conditions:
|
|
568
|
+
|
|
569
|
+
The above copyright notice and this permission notice shall be included in all
|
|
570
|
+
copies or substantial portions of the Software.
|
|
571
|
+
|
|
572
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
573
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
574
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
575
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
576
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
577
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
578
|
+
SOFTWARE.
|
|
579
|
+
|
|
580
|
+
|
|
581
581
|
===
|
|
582
582
|
|
|
583
583
|
# @react-aria/focus@3.19.1 (Apache-2.0)
|
|
@@ -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.
|
package/dist/backend/Handler.js
CHANGED
|
@@ -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();
|
|
@@ -559,6 +559,22 @@ var OAuth2 = class {
|
|
|
559
559
|
}
|
|
560
560
|
});
|
|
561
561
|
}
|
|
562
|
+
case AuthAction.Logout: {
|
|
563
|
+
const cookieHeader = request.headers.get("cookie");
|
|
564
|
+
if (!cookieHeader) throw new HttpError(400, "Missing cookies");
|
|
565
|
+
const cookies = parse(cookieHeader);
|
|
566
|
+
const accessToken = cookies[COOKIE_ACCESS_TOKEN];
|
|
567
|
+
const refreshToken = cookies[COOKIE_REFRESH_TOKEN];
|
|
568
|
+
const token = { accessToken, refreshToken, expiresAt: null };
|
|
569
|
+
await this.#client.revoke(token).catch(() => {
|
|
570
|
+
});
|
|
571
|
+
return new Response(void 0, {
|
|
572
|
+
status: 204,
|
|
573
|
+
headers: {
|
|
574
|
+
"set-cookie": clearCookies(redirectUri)
|
|
575
|
+
}
|
|
576
|
+
});
|
|
577
|
+
}
|
|
562
578
|
default:
|
|
563
579
|
return new Response("Bad request", { status: 400 });
|
|
564
580
|
}
|
|
@@ -629,6 +645,28 @@ function selectKey(jwks, token) {
|
|
|
629
645
|
if (!key) throw new Error(`No key found for kid: ${kid}`);
|
|
630
646
|
return key;
|
|
631
647
|
}
|
|
648
|
+
function clearCookies(redirectUri) {
|
|
649
|
+
return router.cookie(
|
|
650
|
+
{
|
|
651
|
+
name: COOKIE_ACCESS_TOKEN,
|
|
652
|
+
value: "",
|
|
653
|
+
expires: /* @__PURE__ */ new Date(0),
|
|
654
|
+
path: redirectUri.pathname,
|
|
655
|
+
secure: redirectUri.protocol === "https:",
|
|
656
|
+
httpOnly: true,
|
|
657
|
+
sameSite: "strict"
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
name: COOKIE_REFRESH_TOKEN,
|
|
661
|
+
value: "",
|
|
662
|
+
expires: /* @__PURE__ */ new Date(0),
|
|
663
|
+
path: redirectUri.pathname,
|
|
664
|
+
secure: redirectUri.protocol === "https:",
|
|
665
|
+
httpOnly: true,
|
|
666
|
+
sameSite: "strict"
|
|
667
|
+
}
|
|
668
|
+
);
|
|
669
|
+
}
|
|
632
670
|
function tokenToCookie(token, redirectUri) {
|
|
633
671
|
assert(token.refreshToken, "Missing refresh token in response");
|
|
634
672
|
return router.cookie(
|
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 {
|
|
3139
|
+
import type { BrowserConnection } from 'alinea/core/Connection';
|
|
3136
3140
|
import type { User } from 'alinea/core/User';
|
|
3137
3141
|
export interface Session {
|
|
3138
|
-
cnx:
|
|
3142
|
+
cnx: BrowserConnection;
|
|
3139
3143
|
user: User;
|
|
3140
|
-
end?: () => Promise<void>;
|
|
3141
3144
|
}
|
|
3142
3145
|
|
|
3143
3146
|
}
|
package/dist/cli/Serve.js
CHANGED
package/dist/cli/bin.js
CHANGED
|
@@ -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
|
-
|
|
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:
|
package/dist/core/Client.d.ts
CHANGED
|
@@ -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>;
|
package/dist/core/Client.js
CHANGED
|
@@ -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;
|
package/dist/core/Graph.js
CHANGED
|
@@ -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
|
|
13
|
+
if (!result) throw new Error("Entry not found");
|
|
15
14
|
return result;
|
|
16
15
|
}
|
|
17
16
|
count(query) {
|
package/dist/core/Session.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BrowserConnection } from './Connection.js';
|
|
2
2
|
import type { User } from './User.js';
|
|
3
3
|
export interface Session {
|
|
4
|
-
cnx:
|
|
4
|
+
cnx: BrowserConnection;
|
|
5
5
|
user: User;
|
|
6
|
-
end?: () => Promise<void>;
|
|
7
6
|
}
|
package/dist/dashboard/App.js
CHANGED
|
@@ -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 {
|
|
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(
|
|
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
|
|
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.
|
|
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(
|
|
@@ -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.
|
|
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
|
}
|