@axium/server 0.22.7 → 0.22.9
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/build/client/_app/immutable/chunks/{B4jrgZ2v.js → CV6aJBRA.js} +1 -1
- package/build/client/_app/immutable/chunks/CV6aJBRA.js.br +0 -0
- package/build/client/_app/immutable/chunks/CV6aJBRA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CyaTInFC.js → CuRH3mnc.js} +1 -1
- package/build/client/_app/immutable/chunks/CuRH3mnc.js.br +0 -0
- package/build/client/_app/immutable/chunks/CuRH3mnc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BB26zgjv.js → D3N9NXka.js} +12 -12
- package/build/client/_app/immutable/chunks/D3N9NXka.js.br +0 -0
- package/build/client/_app/immutable/chunks/{BB26zgjv.js.gz → D3N9NXka.js.gz} +0 -0
- package/build/client/_app/immutable/entry/{app.CI36K0Ii.js → app.D7YMAAqT.js} +2 -2
- package/build/client/_app/immutable/entry/app.D7YMAAqT.js.br +0 -0
- package/build/client/_app/immutable/entry/app.D7YMAAqT.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CCYA4gbZ.js +1 -0
- package/build/client/_app/immutable/entry/start.CCYA4gbZ.js.br +2 -0
- package/build/client/_app/immutable/entry/start.CCYA4gbZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.C41FMzGJ.js → 1.B48R4hTL.js} +1 -1
- package/build/client/_app/immutable/nodes/1.B48R4hTL.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.B48R4hTL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.Bx9a_cbp.js → 3.jHOFxZjh.js} +1 -1
- package/build/client/_app/immutable/nodes/3.jHOFxZjh.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.jHOFxZjh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.Bv7tqhIp.js → 4.Chs3ZlQq.js} +1 -1
- package/build/client/_app/immutable/nodes/4.Chs3ZlQq.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Chs3ZlQq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.eFtGuF8y.js +1 -0
- package/build/client/_app/immutable/nodes/5.eFtGuF8y.js.br +2 -0
- package/build/client/_app/immutable/nodes/5.eFtGuF8y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.BJG5gZTX.js → 6.2qXwWTTQ.js} +1 -1
- package/build/client/_app/immutable/nodes/6.2qXwWTTQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.2qXwWTTQ.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/styles.css +22 -21
- package/build/client/styles.css.br +0 -0
- package/build/client/styles.css.gz +0 -0
- package/build/client/theme.css +41 -0
- package/build/client/theme.css.br +0 -0
- package/build/client/theme.css.gz +0 -0
- package/build/server/chunks/{1-DLB141jg.js → 1-DgpDfXPt.js} +2 -2
- package/build/server/chunks/{1-DLB141jg.js.map → 1-DgpDfXPt.js.map} +1 -1
- package/build/server/chunks/{3-BLvjl1b0.js → 3-6GCmTvSE.js} +3 -3
- package/build/server/chunks/{3-BLvjl1b0.js.map → 3-6GCmTvSE.js.map} +1 -1
- package/build/server/chunks/{4-_Z3XM2ZU.js → 4-CTFpM_SP.js} +3 -3
- package/build/server/chunks/{4-_Z3XM2ZU.js.map → 4-CTFpM_SP.js.map} +1 -1
- package/build/server/chunks/{5-CGj2cpNi.js → 5-BpCB8dc9.js} +3 -3
- package/build/server/chunks/{5-CGj2cpNi.js.map → 5-BpCB8dc9.js.map} +1 -1
- package/build/server/chunks/{6-DxwYDhel.js → 6-BcoKkoJ_.js} +3 -3
- package/build/server/chunks/{6-DxwYDhel.js.map → 6-BcoKkoJ_.js.map} +1 -1
- package/build/server/chunks/{FormDialog-CieDuaGR.js → FormDialog-B3fXC6M4.js} +4 -4
- package/build/server/chunks/{FormDialog-CieDuaGR.js.map → FormDialog-B3fXC6M4.js.map} +1 -1
- package/build/server/chunks/{Logout-BuFlzVUY.js → Logout-naelGSrR.js} +2 -2
- package/build/server/chunks/{Logout-BuFlzVUY.js.map → Logout-naelGSrR.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-C0BGwZCw.js → _page.svelte-BLt1Vm33.js} +6 -6
- package/build/server/chunks/_page.svelte-BLt1Vm33.js.map +1 -0
- package/build/server/chunks/{_page.svelte-tm2MwH-6.js → _page.svelte-Y6ezsJUw.js} +2 -2
- package/build/server/chunks/{_page.svelte-tm2MwH-6.js.map → _page.svelte-Y6ezsJUw.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-pr5d_b15.js → _page.svelte-cU3u-tVN.js} +3 -3
- package/build/server/chunks/{_page.svelte-pr5d_b15.js.map → _page.svelte-cU3u-tVN.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Diva26gb.js → _page.svelte-oKnc0uuc.js} +2 -2
- package/build/server/chunks/{_page.svelte-Diva26gb.js.map → _page.svelte-oKnc0uuc.js.map} +1 -1
- package/build/server/chunks/{hooks.server-DUHg5UuJ.js → hooks.server-CFWOVtwo.js} +2 -2
- package/build/server/chunks/{hooks.server-DUHg5UuJ.js.map → hooks.server-CFWOVtwo.js.map} +1 -1
- package/build/server/index.js +3 -3
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +7 -7
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -4
- package/routes/account/+page.svelte +1 -1
- package/routes/login/+page.svelte +1 -1
- package/routes/logout/+page.svelte +1 -1
- package/routes/register/+page.svelte +1 -1
- package/svelte.config.js +2 -2
- package/web/template.html +1 -0
- package/assets/icons/brands.svg +0 -1493
- package/assets/icons/light.svg +0 -9977
- package/assets/icons/regular.svg +0 -9977
- package/assets/icons/solid.svg +0 -9977
- package/assets/styles.css +0 -119
- package/build/client/_app/immutable/chunks/B4jrgZ2v.js.br +0 -0
- package/build/client/_app/immutable/chunks/B4jrgZ2v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BB26zgjv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyaTInFC.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyaTInFC.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CI36K0Ii.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CI36K0Ii.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CChz4wnJ.js +0 -1
- package/build/client/_app/immutable/entry/start.CChz4wnJ.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CChz4wnJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.C41FMzGJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.C41FMzGJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.Bx9a_cbp.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Bx9a_cbp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Bv7tqhIp.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Bv7tqhIp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5._SsovuZL.js +0 -1
- package/build/client/_app/immutable/nodes/5._SsovuZL.js.br +0 -0
- package/build/client/_app/immutable/nodes/5._SsovuZL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BJG5gZTX.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BJG5gZTX.js.gz +0 -0
- package/build/server/chunks/_page.svelte-C0BGwZCw.js.map +0 -1
- package/web/lib/AccessControl.svelte +0 -37
- package/web/lib/AccessControlDialog.svelte +0 -12
- package/web/lib/AppMenu.svelte +0 -34
- package/web/lib/ClipboardCopy.svelte +0 -42
- package/web/lib/Dialog.svelte +0 -51
- package/web/lib/FormDialog.svelte +0 -96
- package/web/lib/Icon.svelte +0 -18
- package/web/lib/Login.svelte +0 -36
- package/web/lib/Logout.svelte +0 -24
- package/web/lib/NumberBar.svelte +0 -31
- package/web/lib/Popover.svelte +0 -46
- package/web/lib/Register.svelte +0 -32
- package/web/lib/Toast.svelte +0 -35
- package/web/lib/Upload.svelte +0 -60
- package/web/lib/UserCard.svelte +0 -48
- package/web/lib/WithContextMenu.svelte +0 -73
- package/web/lib/index.ts +0 -16
package/web/lib/Popover.svelte
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Icon from './Icon.svelte';
|
|
3
|
-
const { children, toggle }: { children(): any; toggle?(): any } = $props();
|
|
4
|
-
|
|
5
|
-
let popover = $state<HTMLDivElement>();
|
|
6
|
-
|
|
7
|
-
function onclick(e: MouseEvent) {
|
|
8
|
-
e.stopPropagation();
|
|
9
|
-
popover?.togglePopover();
|
|
10
|
-
}
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<div onclick={e => e.stopPropagation()}>
|
|
14
|
-
<div style:display="contents" {onclick}>
|
|
15
|
-
{#if toggle}
|
|
16
|
-
{@render toggle()}
|
|
17
|
-
{:else}
|
|
18
|
-
<span class="popover-toggle">
|
|
19
|
-
<Icon i="ellipsis" />
|
|
20
|
-
</span>
|
|
21
|
-
{/if}
|
|
22
|
-
</div>
|
|
23
|
-
|
|
24
|
-
<div popover bind:this={popover}>
|
|
25
|
-
{@render children()}
|
|
26
|
-
</div>
|
|
27
|
-
</div>
|
|
28
|
-
|
|
29
|
-
<style>
|
|
30
|
-
.popover-toggle:hover {
|
|
31
|
-
cursor: pointer;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
[popover] :global(.menu-item) {
|
|
35
|
-
display: inline-flex;
|
|
36
|
-
align-items: center;
|
|
37
|
-
padding: 0.5em 0.75em;
|
|
38
|
-
gap: 1em;
|
|
39
|
-
border-radius: 0.5em;
|
|
40
|
-
|
|
41
|
-
&:hover {
|
|
42
|
-
background-color: #223;
|
|
43
|
-
cursor: pointer;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
</style>
|
package/web/lib/Register.svelte
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { register } from '@axium/client/user';
|
|
3
|
-
import FormDialog from './FormDialog.svelte';
|
|
4
|
-
|
|
5
|
-
let { dialog = $bindable(), fullPage = false }: { dialog?: HTMLDialogElement; fullPage?: boolean } = $props();
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<FormDialog bind:dialog submitText="Register" submit={register} pageMode={fullPage}>
|
|
9
|
-
<div>
|
|
10
|
-
<label for="name">Display Name</label>
|
|
11
|
-
<input name="name" type="text" required />
|
|
12
|
-
</div>
|
|
13
|
-
<div>
|
|
14
|
-
<label for="email">Email</label>
|
|
15
|
-
<input name="email" type="email" required />
|
|
16
|
-
</div>
|
|
17
|
-
{#snippet footer()}
|
|
18
|
-
{#if fullPage}
|
|
19
|
-
<div class="footer">
|
|
20
|
-
<a href="/login">Login instead</a>
|
|
21
|
-
</div>
|
|
22
|
-
{/if}
|
|
23
|
-
{/snippet}
|
|
24
|
-
</FormDialog>
|
|
25
|
-
|
|
26
|
-
<style>
|
|
27
|
-
.footer {
|
|
28
|
-
margin-bottom: 1em;
|
|
29
|
-
text-align: center;
|
|
30
|
-
background: none;
|
|
31
|
-
}
|
|
32
|
-
</style>
|
package/web/lib/Toast.svelte
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { fade } from 'svelte/transition';
|
|
3
|
-
|
|
4
|
-
const { enabled, children, delay = 5000, duration = 1000, ...rest } = $props();
|
|
5
|
-
|
|
6
|
-
let hiding = $state(false);
|
|
7
|
-
|
|
8
|
-
const show = $derived(enabled && !hiding);
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
{#if show}
|
|
12
|
-
<div
|
|
13
|
-
class="Toast"
|
|
14
|
-
in:fade|global={{ duration }}
|
|
15
|
-
onintroend={() => (hiding = true)}
|
|
16
|
-
out:fade|global={{ delay, duration }}
|
|
17
|
-
onoutroend={() => (hiding = false)}
|
|
18
|
-
{...rest}
|
|
19
|
-
>
|
|
20
|
-
{@render children()}
|
|
21
|
-
</div>
|
|
22
|
-
{/if}
|
|
23
|
-
|
|
24
|
-
<style>
|
|
25
|
-
.Toast {
|
|
26
|
-
position: fixed;
|
|
27
|
-
bottom: 1em;
|
|
28
|
-
left: calc(50% - 10em);
|
|
29
|
-
right: calc(50% - 10em);
|
|
30
|
-
width: 20em;
|
|
31
|
-
padding: 0.5em 1em;
|
|
32
|
-
border-radius: 1em;
|
|
33
|
-
opacity: 0.5;
|
|
34
|
-
}
|
|
35
|
-
</style>
|
package/web/lib/Upload.svelte
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { forMime } from '@axium/core/icons';
|
|
3
|
-
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
4
|
-
import Icon from './Icon.svelte';
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
name = 'files',
|
|
8
|
-
input = $bindable(),
|
|
9
|
-
files = $bindable(),
|
|
10
|
-
...rest
|
|
11
|
-
}: HTMLInputAttributes & { input?: HTMLInputElement } = $props();
|
|
12
|
-
|
|
13
|
-
const id = $props.id();
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
<div>
|
|
17
|
-
<label for={id} class={[files?.length && 'file']}>
|
|
18
|
-
{#each files! as file}
|
|
19
|
-
<Icon i={forMime(file.type)} />
|
|
20
|
-
<span>{file.name}</span>
|
|
21
|
-
<button
|
|
22
|
-
onclick={e => {
|
|
23
|
-
e.preventDefault();
|
|
24
|
-
const dt = new DataTransfer();
|
|
25
|
-
for (let f of files!) if (file !== f) dt.items.add(f);
|
|
26
|
-
input!.files = files = dt.files;
|
|
27
|
-
}}
|
|
28
|
-
style:display="contents"
|
|
29
|
-
>
|
|
30
|
-
<Icon i="trash" />
|
|
31
|
-
</button>
|
|
32
|
-
{:else}
|
|
33
|
-
<Icon i="upload" /> Upload
|
|
34
|
-
{/each}
|
|
35
|
-
</label>
|
|
36
|
-
|
|
37
|
-
<input bind:this={input} bind:files {name} {id} type="file" {...rest} />
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
<style>
|
|
41
|
-
input {
|
|
42
|
-
display: none;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
label {
|
|
46
|
-
padding: 0.5em 1em;
|
|
47
|
-
border: 1px solid #cccc;
|
|
48
|
-
cursor: pointer;
|
|
49
|
-
display: flex;
|
|
50
|
-
align-items: center;
|
|
51
|
-
gap: 0.5em;
|
|
52
|
-
border-radius: 0.5em;
|
|
53
|
-
width: 20em;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
label.file {
|
|
57
|
-
display: grid;
|
|
58
|
-
grid-template-columns: 2em 1fr 2em;
|
|
59
|
-
}
|
|
60
|
-
</style>
|
package/web/lib/UserCard.svelte
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { User } from '@axium/core/user';
|
|
3
|
-
import { getUserImage } from '@axium/core';
|
|
4
|
-
|
|
5
|
-
const {
|
|
6
|
-
user,
|
|
7
|
-
compact = false,
|
|
8
|
-
self = false,
|
|
9
|
-
href = `/users/${user.id}`,
|
|
10
|
-
you = false,
|
|
11
|
-
}: {
|
|
12
|
-
user: Partial<User>;
|
|
13
|
-
/** If true, don't show the picture */
|
|
14
|
-
compact?: boolean;
|
|
15
|
-
/** Whether the user is viewing their own profile */
|
|
16
|
-
self?: boolean;
|
|
17
|
-
/** The URL to link to */
|
|
18
|
-
href?: string;
|
|
19
|
-
/** Whether to display a "You" label if `self` */
|
|
20
|
-
you?: boolean;
|
|
21
|
-
} = $props();
|
|
22
|
-
</script>
|
|
23
|
-
|
|
24
|
-
<a class={['User', self && 'self']} {href}>
|
|
25
|
-
{#if !compact}
|
|
26
|
-
<img src={getUserImage(user)} alt={user.name} />
|
|
27
|
-
{/if}
|
|
28
|
-
{user.name}
|
|
29
|
-
{#if self && you}
|
|
30
|
-
<span class="subtle">(You)</span>
|
|
31
|
-
{/if}
|
|
32
|
-
</a>
|
|
33
|
-
|
|
34
|
-
<style>
|
|
35
|
-
.User {
|
|
36
|
-
cursor: pointer;
|
|
37
|
-
width: max-content;
|
|
38
|
-
height: max-content;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
img {
|
|
42
|
-
width: 2em;
|
|
43
|
-
height: 2em;
|
|
44
|
-
border-radius: 50%;
|
|
45
|
-
vertical-align: middle;
|
|
46
|
-
margin-right: 0.5em;
|
|
47
|
-
}
|
|
48
|
-
</style>
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
|
-
import Icon from './Icon.svelte';
|
|
4
|
-
|
|
5
|
-
interface Props extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
children(): any;
|
|
7
|
-
menu(
|
|
8
|
-
/**
|
|
9
|
-
* Shortcut to quickly create a generic action in the context menu.
|
|
10
|
-
*/
|
|
11
|
-
action: (icon: string, text: string, action: (event: MouseEvent) => void) => any
|
|
12
|
-
): any;
|
|
13
|
-
actions: Record<string, () => void>;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
let { children, menu, actions, ...rest }: Props = $props();
|
|
17
|
-
|
|
18
|
-
let popover = $state<HTMLDivElement>();
|
|
19
|
-
|
|
20
|
-
function oncontextmenu(e: MouseEvent) {
|
|
21
|
-
e.preventDefault();
|
|
22
|
-
e.stopPropagation();
|
|
23
|
-
popover!.togglePopover();
|
|
24
|
-
_forcePopover = true;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
let _forcePopover = false;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Workaround for https://github.com/whatwg/html/issues/10905
|
|
31
|
-
* @todo Remove when the problem is fixed.
|
|
32
|
-
*/
|
|
33
|
-
function onpointerup(e: PointerEvent) {
|
|
34
|
-
if (!_forcePopover) return;
|
|
35
|
-
e.stopPropagation();
|
|
36
|
-
e.preventDefault();
|
|
37
|
-
popover!.togglePopover();
|
|
38
|
-
_forcePopover = false;
|
|
39
|
-
}
|
|
40
|
-
</script>
|
|
41
|
-
|
|
42
|
-
{#snippet action(i: string, text: string, action: (event: MouseEvent) => void)}
|
|
43
|
-
<div
|
|
44
|
-
onclick={e => {
|
|
45
|
-
e.stopPropagation();
|
|
46
|
-
e.preventDefault();
|
|
47
|
-
action(e);
|
|
48
|
-
}}
|
|
49
|
-
class="action"
|
|
50
|
-
>
|
|
51
|
-
{#if i}<Icon {i} --size="14px" />{/if}
|
|
52
|
-
{text}
|
|
53
|
-
</div>
|
|
54
|
-
{/snippet}
|
|
55
|
-
|
|
56
|
-
<div data-axium-context-menu {oncontextmenu} {onpointerup} {...rest}>
|
|
57
|
-
{@render children()}
|
|
58
|
-
<div popover bind:this={popover}>
|
|
59
|
-
{@render menu(action)}
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
|
|
63
|
-
<style>
|
|
64
|
-
[data-axium-context-menu] {
|
|
65
|
-
display: contents;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
div.action:hover {
|
|
69
|
-
cursor: pointer;
|
|
70
|
-
background-color: #223;
|
|
71
|
-
border-radius: 0.25em;
|
|
72
|
-
}
|
|
73
|
-
</style>
|
package/web/lib/index.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export { default as AccessControl } from './AccessControl.svelte';
|
|
2
|
-
export { default as AccessControlDialog } from './AccessControlDialog.svelte';
|
|
3
|
-
export { default as AppMenu } from './AppMenu.svelte';
|
|
4
|
-
export { default as ClipboardCopy } from './ClipboardCopy.svelte';
|
|
5
|
-
export { default as Dialog } from './Dialog.svelte';
|
|
6
|
-
export { default as FormDialog } from './FormDialog.svelte';
|
|
7
|
-
export { default as Icon } from './Icon.svelte';
|
|
8
|
-
export { default as Login } from './Login.svelte';
|
|
9
|
-
export { default as Logout } from './Logout.svelte';
|
|
10
|
-
export { default as NumberBar } from './NumberBar.svelte';
|
|
11
|
-
export { default as Popover } from './Popover.svelte';
|
|
12
|
-
export { default as Register } from './Register.svelte';
|
|
13
|
-
export { default as Toast } from './Toast.svelte';
|
|
14
|
-
export { default as Upload } from './Upload.svelte';
|
|
15
|
-
export { default as UserCard } from './UserCard.svelte';
|
|
16
|
-
export { default as WithContextMenu } from './WithContextMenu.svelte';
|